I encountered this problem and I believe this is a bug.
The Workflow Tool node in N8N fails to correctly inherit and expose array type definitions from the Execute Sub-workflow Trigger node, resulting in malformed JSON schemas that break tool validation.
Components Involved:
- Execute Sub-workflow Trigger node - where inputs are declared as arrays
- Workflow Tool node - which exposes the workflow as a tool with a JSON schema
Expected Behavior: When you declare inputs as arrays in the Execute Sub-workflow Trigger node:
- Input name:
filenames(type: array) - Input name:
contents(type: array)
The Workflow Tool node should expose a schema like:
{
"properties": {
"filenames": {
"type": "array",
"items": {"type": "string"}
},
"contents": {
"type": "array",
"items": {"type": "string"}
}
},
"required": ["filenames", "contents"]
}
Actual Behavior: The Workflow Tool node exposes the schema with empty object definitions:
{
"properties": {
"filenames": {},
"contents": {}
},
"required": ["filenames", "contents"]
}
Impact:
- The empty
{}provides no type constraints or validation - External systems calling the tool cannot validate input properly
- Tool calls fail with “Received tool input did not match expected schema” errors
- The Workflow Tool node UI provides no way to manually correct or override these type definitions
Workaround: None available in the UI - the type definitions from the Trigger node should automatically propagate correctly - or allow the user to set them up manually.
Please share your workflow
Information on your n8n setup
- n8n version: 1.120.0
- Database (default: SQLite): SQLite
- n8n EXECUTIONS_PROCESS setting (default: own, main): default
- Running n8n via (Docker, npm, n8n cloud, desktop app): Docker
- Operating system: Ubuntu