isError=true on one batch tool result cascades to affect sibling results

Resolved 💬 3 comments Opened Mar 17, 2026 by boroughnexus-cto Closed Mar 21, 2026

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

  1. Issue two or more tool calls in a single response (parallel batch)
  2. Have one of those tool calls return isError: true
  3. 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.

View original on GitHub ↗

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