Subwrokflow returning original data submitted instead of data from the last node

Hi, I am using a subworkflow, the problem is the output from the last node which is a aset node, is not being brought back to the main flow, it is actually returning the data from the original subworkflow entry node, so basically it calls the subworkflow, runs it through successfully and the last node in the subworkfflow outputs the correct data, but the data returned in the main workflow is what was submitted to the subworkflow originally, which makes no sense.

I am sure the last node is set up correctly because I have no branches, so it is clear which the last node in the subworkflow is.

My assumption was that there might be a bug or something, I am not using the latest beta version, I am 1 update behind.

Any help please?

Hi @Nick_B

Without a sample, screenshots, or the workflow itself, it’s hard to help..

Subworklow:

Subworkflow Inputs

Outputs From Subworkflow:

Final Node in the subworkflow:

Thanks @Nick_B
Can you click on view parent execution 11715 and see if there is something strange there, what’re seeing in screenshots is the execution #1716 not #11715

I think is the execution id. Parent has 11715 and the subworkflow has +1… ?

I unpinnned everything and ran it again, just in case, and re attached new screenshots, so there is no confusion.

As you said, the ID is different, for some reason in this screen shot:

I do not see anything strange in the workflow….apart from the highlighted mismatch of 11724 and 11723 in the first photo, and I have no idea how that is happening.

Yea most likely that is the issue, but I do not have any idea how to fix it. I pasted my workflow in another comment, I hope that would be helpful in debugging this issue. Thank you for any help! :slight_smile:

Apparently it is a bug because of the Wait node…the only way I found to fix this is replacing it with a Python Code Node. Here is the code for anyone that needs it. :smiley:

import asyncio

# Get the data from the previous node.
# 'items' is a list of all input items provided by n8n. We'll get the data from the first item.
data_to_pass_through = items[0].json

async def wait_async():
    # Wait for 90 seconds
    await asyncio.sleep(90)
    
    # After waiting, return the original data we captured BEFORE the wait
    return data_to_pass_through

# Call the async function and return its result.
# This will be the output of the node.
return await wait_async()
3 Likes

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