Workflow tool's subagents fail every tool call - permission handler strips required parameters

Status Closed — not planned
Reported on v2.1.220
Maintainer reply None cached
Activity 3 comments · opened Jul 30, 2026 · closed Aug 23, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Subagents spawned via the Workflow tool fail every single tool call they attempt (WebSearch, WebFetch, Bash, Read, Glob, ToolSearch), all with the same error:

"The permission handler returned updatedInput for <Tool> that failed schema validation: <Tool> failed due to the following issue: The required parameter <param> is missing. This is a configuration issue in your canUseTool callback, PermissionRequest hook, or permission-prompt tool"

This happened on 30/30 subagents in one batch, 100% failure rate across 6 different tool types. No hooks are configured in my project or user settings, so this isn't a user-side config problem, it looks like the harness's own auto-approval layer for headless Workflow subagents is stripping required parameters from the call before it reaches the tool.

A secondary issue: after tool calls fail, the subagent reports its structured output (e.g. {"found": false}), which itself gets rejected with "Output does not match required schema: root: must have required property 'found'", even though the property is clearly present.

Plain Agent-tool subagents in the same session do NOT have this problem, they call tools successfully. This isolates the bug to Workflow's specific subagent permission path.

What Should Happen?

Workflow-spawned subagents should be able to call standard tools the same way Agent-tool subagents do, since both are headless/non-interactive and should share a working auto-approval path.

Error Messages/Logs

The permission handler returned updatedInput for ToolSearch that failed schema validation: ToolSearch failed due to the following issue:
The required parameter `query` is missing
This is a configuration issue in your canUseTool callback, PermissionRequest hook, or permission-prompt tool...

Output does not match required schema: root: must have required property 'found'
(despite the submitted payload being {"found": false} / {"found": true})

pipeline[0..29] failed: agent({schema}): StructuredOutput retry cap (5) exceeded — 5 failed calls with no valid output
Usage: agent_count: 30, agents_done: 0, agents_error: 30, subagent_tokens: 1,040,208, tool_uses: 417

Steps to Reproduce

  1. In a Claude Code session, call the Workflow tool with a script using pipeline() to fan out over N items, where each stage calls agent(prompt, {schema}) and the prompt asks the subagent to use a tool (e.g. WebSearch).
  2. Observe that the subagent's tool call is rejected immediately with a "permission handler returned updatedInput... failed schema validation... required parameter is missing" error, for every tool type attempted.
  3. Compare against Agent tool: launch an equivalent single Agent() call (not via Workflow) with the same prompt, it succeeds normally.

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.220 (Claude Code)

Platform

Anthropic API

Operating System

Other Linux

Terminal/Shell

Terminal.app (macOS)

Additional Information

workflowbugreport.md

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗