[BUG] Read tool file_path parameter silently dropped in background subagents
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?
When spawning background subagents via the Task tool with
subagent_type: "general-purpose" and run_in_background: true, the
Read tool call consistently fails with InputValidationError: The. The tool is called with an
required parameter file_path is missing
empty input: {} even though the model clearly intends to pass the
parameter. The agent enters an infinite retry loop (200-300+
retries), burning tokens without progress.
This only affects general-purpose background subagents. The same
Read calls work fine in the main agent loop and in Explore-type
subagents. In one session, 6 out of 9 parallel subagents hit this
simultaneously, suggesting a race condition.
What Should Happen?
The Read tool should receive the file_path parameter and read the
file successfully, just as it does in the main agent loop and
Explore-type subagents.
Error Messages/Logs
{
"type": "tool_use",
"id": "tooluse_bxB48tEomY7NdNpkbttzJR",
"input": {},
"name": "Read"
}
InputValidationError: Read failed due to the following issue: The required parameter `file_path` is missing
Steps to Reproduce
- Spawn a background subagent via the
Tasktool with
subagent_type: "general-purpose" and run_in_background: true
- In the prompt, instruct the agent to read specific files using
absolute paths via the Read tool
- The subagent attempts to call the
Readtool but thefile_path
parameter is missing from the actual tool invocation
- The agent retries indefinitely with the same empty
input: {}
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.50
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
VS Code integrated terminal
Additional Information
- Only affects
general-purposesubagents with `run_in_background:
true`
- 6 out of 9 parallel subagents hit this simultaneously, suggesting a
race condition
- Each affected agent retried 200-300+ times, always with
input: {} - Other tools (
Write,Bash,Glob,Grep) worked correctly in
the same agents
- Agents that completed successfully used the same tool and file path
patterns
### Workaround
Use Bash with cat to read files instead of the Read tool in
subagents, or use Explore-type subagents which are not affected.
### Impact
- Massive token waste (~6000+ input tokens per retry × 200+ retries
per agent)
- Background agents run indefinitely until manually stopped
- No automatic circuit-breaking for repeated identical failures
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗