Wait Node Delays Node in Different Connection from Executing

Describe the issue/error/question

I have a workflow that includes a node with two separate connections near the end of the workflow (see screenshot below).

One of those connections (connection #1) has 3 nodes - a Format node, a Wait node and a HTTP Request node node.

The other connection (connection #2) has 2 nodes - a Set Node and a Send Email Node (but NO Wait node).

However I have observed the Wait node from connection #1 affecting the nodes in connection #2. Specifically the 1st node will execute from both connections, but then the 2nd node in connection #2 (Send email node) will not execute until the Wait node from connection #1 finishes even though there is no Wait node in connection #2 which should affect it.

This does not seem to be the the proper behavior how connection #2 of this workflow should execute. This has been occurring through multiple releases of n8n.

Please share the workflow

image

Information on your n8n setup

  • n8n version: 0.193.3
  • Database you’re using (default: SQLite): SQLite
  • Running n8n via [Docker, npm, n8n.cloud, desktop app]: Docker

Hi @MortgageRockstar

That is normal behaviour. As the nodes have a certain order they are executed in. One by one, the wait node does not allow other nodes to start while it is waiting.
If you want to send the email before the post you can also add a merge node in place of the wait to make sure the mail was done before the Post gets executed.
The pass through function would be the mode you need on the merge node I think.

2 Likes

Thanks for your reply, @BramKn.

That may indeed be the case but I must say that it does not seem intuitive that when two or more connections diverge from a single node that the nodes in those separate connections fire one by one even though they are not sequential or dependent on each other.

Is there documentation anywhere in n8n that explains how nodes are executed in more detail?

@BramKn, below is how I would expect the order of nodes to be executed (nodes in separate connections A and B would be executed sequentially independently of each other).

expected-flow

However if I understand you correctly, are you saying that the order in which the nodes actually would be executed would be that below?

actual-flow

Hi @MortgageRockstar

Uhh, not sure to be honest. I make sure to always have independent workflows if they are split off.
And if they are dependant of each other merge them together before the workflows continues.
I must say I am a bit of a control freak and I don’t want it randomly breaking because the workflow decides to take a different path.

Can someone on the @n8n_Team help me understand this better?