Hi all,
I’m running into a persistent issue in n8n Cloud v1.122.4 involving Execute Workflow (Source: Database) and passing data into a sub workflow.
I’m hoping someone can sanity check whether this is expected behaviour, a known limitation, or a bug.
Setup
Master workflow
Creates a Google Sheet via Google Drive → Copy file
Stores the returned file ID as sheetId
Combines evidence and metadata into a single JSON item
Calls a sub workflow (P1) using Execute Workflow (Source: Database)
Waits for sub workflow completion
Sub workflow (P1)
Triggered by Execute Workflow Trigger
Builds prompts and parses GPT output
Appends rows to the Google Sheet using:
{{ ($json.sheetId || “”).trim() }}
Expected behaviour
The sub workflow should receive the same input item that reaches the Execute Workflow node in Master, including:
sheetId (Google Sheet document ID)
brand_name
brand_url
category
company_size
combinedEvidence
This matches the documented behaviour for Execute Workflow (Database source):
“The sub workflow receives the same items as the Execute Workflow node receives.”
Actual behaviour
Intermittently (but reproducibly), the sub workflow runs with missing or empty fields, most critically:
sheetId is an empty string (“”) inside the sub workflow
This causes the Google Sheets node in the sub workflow to fail with:
Can not get sheet ‘By ID’ with a value of ‘’
Stack trace:
NodeOperationError: Can not get sheet ‘By ID’ with a value of ‘’
Key observations:
The same sheetId works if hard coded
trim() is not the issue (used safely as ($json.sheetId || “”).trim())
The error bubbles up to Master because it waits for sub workflow completion
Other fields (e.g. prompt scaffolding) sometimes appear, but key inputs are blank
Important detail
There is no “Workflow Inputs” / explicit mapping UI available in my Execute Workflow node when Source = Database (as expected in this version). Input is passed implicitly.
However, it appears that certain upstream Set / Edit Fields nodes or GPT nodes may be overwriting or flattening the item shape, causing the item that actually reaches the Execute Workflow node to lack sheetId, even though it existed earlier in the workflow.
This makes the failure mode very hard to diagnose, because:
The sub workflow still runs
The error only occurs when the Sheets node executes
The message points at Google Sheets, not at missing input data
Questions
In n8n Cloud v1.x, is Execute Workflow (Database source) guaranteed to pass the exact incoming items, or can the item shape change in ways that drop fields?
Is it expected that downstream nodes (e.g. GPT, Set, parsing nodes) can cause fields like sheetId to disappear before reaching Execute Workflow?
Is there a recommended pattern to enforce a strict “input contract” between Master → sub workflows?
Are there any known issues in v1.122.x where Execute Workflow runs with empty input when workflowInputs metadata exists but is empty?
Is there a way to fail fast if a required field (like sheetId) is missing before executing a sub workflow?
Describe the problem/error/question
What is the error message (if any)?
Please share your workflow
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
Share the output returned by the last node
Information on your n8n setup
- n8n version:
- Database (default: SQLite):
- n8n EXECUTIONS_PROCESS setting (default: own, main):
- Running n8n via (Docker, npm, n8n cloud, desktop app):
- Operating system: