Possible bug in the Workflow Tool node

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:

  1. Execute Sub-workflow Trigger node - where inputs are declared as arrays
  2. 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