When I use a merge node I am expecting it to wait to receive both inputs in order to provide a merged output, otherwise it is just a passthrough node. I have outlined several scenarios where the merge node behaves differently depending on what input is used below. This inconsistent behavior introduces a lot of room for error when designing complex workflows.
If this is expected behavior I would like to confirm that.
I am attempting to achieve workflows that check for check for truthiness in the response from an HTTP Request Node and pass the data that was input to the HTTP Request node to the next workflow node. Since (at least from what I’ve found so far) there is no way to merge input and output for HTTP Request nodes, I need to use a Merge Node to pass the output from the node prior to the HTTP Request (i.e. the input to the HTTP Request) if the HTTP Request passes my IF statement. I could wire the output of my IF node to Input 1 of my merge node and the output prior to my HTTP Request to Input 2 of the Merge so that the merge is triggered after the IF and the Merge is only configured to pass Input 2, however, in some cases I need to Append the Inputs in which case this will not work.
- If Merge is configured for Append Mode and Input 1 is available, but not Input 2 then the workflow branch will continue.
- If Merge is configured for Append Mode and Input 2 is available, but not Input 1 then the workflow branch will not continue.
- If Merge is configured for Choose Branch Mode, Output Type “Wait for Both Inputs to Arrive”, and Output “Input 1 Data”, then workflow will continue when Input 1 is available regardless of whether Input 2 is available, despite the Wait for Both Inputs to Arrive.
- If Merge is configured for Choose Branch Mode, Output Type “Wait for Both Inputs to Arrive”, and Output “Input 2 Data”, then workflow will not continue when Input 1 is not available regardless of whether Input 2 is available.
See above examples.
- n8n version: 0.219.1
- Database: PostgreSQL
- n8n EXECUTIONS_PROCESS setting (default: own, main):
- Running n8n via: Docker
- Operating system: