isError=true on one batch tool result cascades to affect sibling results
Description
When one tool call in a parallel batch returns isError: true, Claude Code treats subsequent tool results in the same batch as if they too had failed — either ignoring their output or aborting processing of the batch early. This happens even when the other tool calls completed successfully and returned valid data.
Steps to Reproduce
- Issue two or more tool calls in a single response (parallel batch)
- Have one of those tool calls return
isError: true - Observe that Claude Code processes or surfaces the results of the other (successful) tool calls incorrectly
Expected Behaviour
Each tool result in a batch should be processed independently. A single isError: true result should only affect the handling of that specific tool call — other successful results in the same batch should be fully available.
Actual Behaviour
The isError: true result cascades: subsequent tool results in the batch appear to be suppressed, ignored, or treated as failed, even when they contain valid data.
Impact
This causes unnecessary re-invocations when one tool in a batch has a transient error, since all sibling results are discarded. It can also lead to incomplete context being available to the model after a batch where partial failure is expected.
Environment
- Claude Code version: latest
- Platform: Linux
Additional Context
This was noticed during multi-tool batch operations where one MCP tool returns an error condition while others succeed. The workaround is to avoid batching tool calls when any might fail, which reduces parallelism.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗