When executing a workflow which makes an HTTP request, and uses a Wait Node to wait for a responding Webhook to be called, the data returned to the consumer (The on executing the workflow) is the result of the HTTP call, and not the flow that runs after the wait.
In the Executions tab, the results are shown correctly, but the consumer receives the results from the HTTP request.
Please share your workflow
The flow being executed
The final node returns
"id": "<A generated ID>",
"url": "<A valid URL>"
A subset of the consuming flow
The Ingest node receives
"id": "<A generated ID>"
Information on your n8n setup
- n8n version: Cloud
- Database: SQLite
- Operating System: OSX
It looks like your topic is missing some important information. Could you provide the following if applicable.
- n8n version:
- Database (default: SQLite):
- n8n EXECUTIONS_PROCESS setting (default: own, main):
- Running n8n via (Docker, npm, n8n cloud, desktop app):
- Operating system:
Can you share the workflow or an example workflow so we can see what you are doing?
I put them above in my question?
It’s a combination of faIK5OqJaWbaTepo (Which works) and cKO0jgctyFwyiPnP (Which receives the incorrect data back)
When viewing the execution data from faIK5OqJaWbaTepo I can see the correct data in the final node.
So just so that I can get my head around this… You are expecting the user that calls the webhook url from the first workflow to get the response from after the wait node when a second user may have had to follow a link?
At the moment it looks like both the webhook node and the wait node are set to respond immediatly but if you are using a wait node with a webhook that puts it into a sort of standby state (over a minute or waiting for a webhook) the first webhook will respond as soon as it hits that point as it is unknown how long it would need to wait for.
Sorry… I shortened the second workflow for brevity. The second flow continues with additional steps, and finally executes the callback supplied in the call to the webhook.
The issue happens on the call to the first workflow. The execution data for the first workflow shows the correct return data in the “Extract Ingestion Data” node output, but the Ingest node in the second workflow shows the return data returned from the “Upload to Shotstack” in the first workflow.
I have created some sample workflows to illustrate the problem (Using RequestBin to test).
It seems to me that Test Workflow 1 returns data to Test Workflow 2 as soon as the Wait Node in Test Workflow 1 is reached, and not when the flow is fully completed.
Test Workflow 1 (This one will be called by Test Workflow 2)
Test Workflow 2 (This one calls Test Workflow 1, but receives the wrong data back):
To me that workflow is getting back what it should be getting as the wait node puts the subworkflow into a suspended state until it is has finished so the main workflow is told not to worry about it and continue.
This happens when you use a wait for webhook or if you wait for over 60 seconds (it might be 64 seconds), At this point the workflow goes into a waiting state and sits in the database waiting to finish.
How can I wait for the main workflow to be fully completed?
I would not use the wait node and that would handle it. If you do need to wait for the wait node you would need to redesign your workflow and maybe introduce some kind of logic to check if the event has been completed by keeping the state in a third party system like redis.