Merge node behaving differently on the desktop and the docker versions

I have a workflow that when exported and reimported works differently.

This is the original workflow

I have n8n desktop v0.182.0 with a workflow like this:

When I execute the flow manually once, the first “Set node” gets triggered. It reaches the first “Merge node”, and it “pulls” the two inputs. The first “set node” is already triggered and the “pull” forces the second “set node” to be executed.

Same happens with all the merges and finally there’s an excel writer that writes a set of rows. See that all the lines in the image are set to green and 6 items enter the spreadhseet file node.

Export and import

I export this workflow from the desktop into a json file and then import this json into a n8n running in docker (build: “2023-10-26T11:49:18.534824137Z”).

It behaves differently

Once imported, I only changed the final route of the Excel file. In the desktop it had a windows route like “C:\whatever” and in the linux it is “/files/whatever”. The rest is untouched.

Nevertheless when I execute it manually, only 1 row gets printed in the excel, and if I inspect the arrows in the diagram, I see that the “merge node” does not “pull” from the rest.

Only a fer arrows get executed (green). And the vast rest remain gray. And 1 single item enters the Spreadsheet file.

Questions

  • Is this behaviour expected?
  • I have to export a dozen of workflows and reimport them. What can I do to make sure they work the same when imported?

Hi @xmontero, this change is expected with n8n version 1. You can find this information in the migration guide:

n8n used to execute multi-input nodes as long as they received data on their first input. Nodes connected to the second input of multi-input nodes automatically executed regardless of whether they received data. The new execution order introduced in n8n 1.0 simplifies this behavior: Nodes are now executed only when they receive data, and multi-input nodes require data on at least one of their inputs to execute.

You can configure this behaviour in your workflow settings. v1 execution order:

v0 execution order:

Hope this helps!

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.