Narrowed the trigger a bit on our repo. Turns that read many files in parallel are fine. Turns that read files and dispatch a subagent in the same message are where it breaks for us — roughly one in six. Sequencing those two apart made it go away entirely.
API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.
A long session dies mid-turn with a 400 and the instruction to run /rewind. It happens most often when several tools are dispatched in one turn, and /rewind does recover the conversation — but the turn's work is gone.
Workaround verified
1 confirmation · 3 environments
- Applies through
- 2.1.216 – 2.1.220
- Last confirmed
- 4d ago
Who confirmed ▸
- kfj · 4d ago
- Applies to
- Claude Code reported across 2.1.216 – 2.1.220; not fixed as of 2.1.220
- Environments
- Worst with high tool fan-out; several reports specific to the VS Code extension · macOS, Linux, Windows
- Severity
- High
Filed by graycode · Jul 23, 2026
Checkpoint before fan-out, and don't run two clients on one transcript
There is no configuration that prevents the 400. What reduces the cost of hitting it is committing before any wide step, and making sure the CLI and the IDE extension are never attached to the same session at once.
- 01Commit before a step you expect to fan out, so /rewind costs you a turn rather than an afternoon:
git commit -am "checkpoint: before refactor sweep" - 02Close the IDE extension session before driving the same repository from the CLI. Two clients writing one transcript is the most reproducible trigger anyone has reported.
- 03When it fires, run /rewind first — before retyping the prompt. Re-prompting on a broken transcript reproduces the 400 immediately.
- 04Ask for wide work in sequenced batches rather than one turn. Put it in CLAUDE.md if it keeps happening:
## Tool use - For sweeps across more than ~6 files, work in batches and summarise between batches. - Do not dispatch a subagent in the same turn as a wide file read.
Fix applies to 2.1.216 – 2.1.220
Members' reports are attributed. Anonymous ones are counted separately.
Does it still happen?
What each release of Claude Code has been reported to do with this issue.
- 2.1.216Not yet tested— running Claude Code 2.1.216? Tell us below.
- 2.1.217Not yet tested— running Claude Code 2.1.217? Tell us below.
- 2.1.218Still affected — 1 report
- 2.1.219Not yet tested— running Claude Code 2.1.219? Tell us below.
- 2.1.220Still affected — 1 report
Why this happens
Mid-turn, the session aborts with:
API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.It lands hardest on turns that fan out — several file reads plus a search plus a subagent in the same assistant message. /rewind does restore the conversation, but everything the turn had done since the last checkpoint is discarded. On a long autonomous run that can be twenty minutes of work.
Likely causeThe turn issues parallel tool calls and one result comes back malformed or out of order, so the next request carries a tool_use block with no matching tool_result. The API rejects the whole message rather than the individual block. Reports cluster on turns with high tool fan-out and on the VS Code extension, where a second client can touch the same transcript.
Confirmed environments3
| Agent | Version | Model | OS | Framework | Outcome |
|---|---|---|---|---|---|
| Claude Code | 2.1.220 | Claude Sonnet 5 | Ubuntu 24.04 | — | Reproduced |
| Claude Code | 2.1.220 | Claude Opus 5 | Windows 11 | — | Not reproduced |
| Claude Code | 2.1.218 | Claude Opus 5 | macOS 15.5 | — | Reproduced |
Approaches that failed1
Downgrading to 2.1.216
Assumed it was a recent regression. It is not — reproduced on 2.1.216 within an hour. Went back to 2.1.220.
iris.vw · 1w ago
Other approaches that worked2
/rewind immediately, before re-prompting
Recovers the conversation reliably. The turn's work is still lost, so this is damage control, not a fix.
rowanp · 6d ago
One client per transcriptpartial
Stopped leaving the VS Code extension attached while working in the terminal. Frequency went from several times a day to twice in two weeks. Doesn't eliminate it.
graycode · 1w ago
Discussion · 2 comments
Strong evidence gets promoted into the record above.
Sign in to join the discussion, vote, and verify fixes.
Related pages
Worth stating plainly for anyone who lands here from a search:
/rewindgenuinely does recover the conversation. The message is not a generic 'something broke' — it is telling you the exact recovery command. Run it before you retype anything.