Fix Claude Code 'Tool Call Could Not Be Parsed' (Retry Also Failed)
The partial-JSON parser chokes on CJK characters in tool-call arguments. Start a new session in English and keep tool-call args in ASCII.
TL;DR: Claude Code's "tool call could not be parsed (retry also failed)" means the partial-JSON parser choked on CJK text in tool-call arguments, so start a new English session and keep tool-call args in ASCII.
The error shows up mid-session with no warning: Claude Code attempts a tool call (Edit, Bash, Write), the call fails to parse, an internal retry also fails, and the in-progress action is silently dropped. The turn is lost. Reported on Claude Code 2.1.158 through 2.1.160 with Opus 4.8, the bug is intermittent and has no deterministic repro, but developers working in Chinese, Japanese, or Korean hit it far more often than the issue threads suggest, because most existing coverage treats it as a generic "update and retry" error and misses the CJK trigger entirely.
Why does Claude Code show "the model's tool call could not be parsed"?
Claude Code sends tool calls as JSON payloads. The model generates a structured tool-use request, and a partial-JSON parser on the client side decodes it before executing the tool. When the parser encounters content it cannot split into valid JSON mid-stream, it aborts. The internal retry re-sends the same payload, hits the same boundary, and fails again. The result is the "retry also failed" suffix.
The strongest reported trigger is non-ASCII text, specifically CJK characters (Chinese, Japanese, Korean), inside tool-call arguments. Multi-byte characters can shift the parser's string-length accounting, causing it to miscount boundaries and fail mid-payload. This is tracked in GitHub issue #63875, where a developer working in Chinese hit the error repeatedly until switching to an English session that ran 30+ minutes without recurrence.

Other reported triggers include tool calls with very large arguments (long file contents passed in a single Edit or Write call), unescaped quotes or backslashes in file paths, and context-window overflow that truncates the model's output mid-tool-call. The error is not limited to one OS. Reports span Windows, WSL2, and macOS.
How do you fix the "retry also failed" error in Claude Code?
- Start a new session in English or French. The error does not self-correct within the same session. Close the current session and open a fresh one. A reporter on issue #63875 switched from Chinese to English and the error stopped.
- Keep tool-call arguments in ASCII. The parser breaks on non-ASCII characters inside the JSON payload that makes up the tool call, not in your code itself. Code comments, commit messages, and prose can stay in your own language. The trigger is specifically multi-byte text passed as a tool argument: file contents, search queries, or command strings that contain CJK characters.
- Update Claude Code to the latest version. Anthropic ships frequent fixes for tool-call parsing. Check your version with
claude --versionand update withnpm install -g @anthropic-ai/claude-code@latest. The bug was reported on 2.1.158; newer releases may include parser improvements. - Compact or clear the context. If the session is long, run
/compactto reduce context size or/clearto start fresh without closing the terminal. Long conversations increase the likelihood of truncated tool-call output.
How do you prevent Claude Code from dropping tool calls?
If you work in a CJK language, the most effective prevention is to keep the tool-call layer ASCII-only. Write code comments and commit messages in Chinese or Japanese as needed. Those are file contents, not tool-call arguments. The problem arises when CJK text is passed directly as a tool argument, such as a search query containing Chinese characters or a file path with Japanese characters.

For large operations, break them into smaller steps. Instead of asking Claude Code to edit a 500-line file in one tool call, ask it to edit specific sections. Smaller payloads are less likely to hit parser boundary issues.
If you see the error more than once in a session, do not keep retrying the same request. Each retry sends the same payload that already failed. Start a new session instead. This is the same pattern as the AskUserQuestion timeout, where a Claude Code session silently drops an action mid-turn, and the fix is the same: restart the session rather than retrying inline.
Is there a Claude Code debug log for failed tool calls?
Claude Code does not currently surface the raw failed tool-call payload by default. To get more detail, run Claude Code with the --debug flag (claude --debug) or set the CLAUDE_CODE_DEBUG=1 environment variable before starting a session. Debug output includes the tool-call payloads the model generates, which can confirm whether non-ASCII content is present in the failing argument.
If you can reproduce the error, attach the debug log to a new comment on issue #63875. The maintainers have labeled it area:model and platform:windows, indicating they recognize it as a model-layer parsing issue, not a user configuration problem.
What if the error persists even in English?
If a fresh English session still hits the error, the trigger is likely payload size or special characters rather than CJK text. Check for tool calls that pass very long strings, deeply nested JSON, or file paths with backslashes on Windows. Also verify you are on the latest Claude Code version, since older releases have known parser bugs that newer versions fix. An MCP connection failure can produce a similar "tool call dropped" symptom, so rule that out if the error appears after an MCP server change.
For a broader catalog of Claude Code and automation-platform errors, see the Automation Error Index, which auto-ingests every published fix post.
FAQ
Does Claude Code support Chinese, Japanese, or Korean text?
Yes. Claude Code handles CJK text in code, comments, and prose without issue. The parse error only affects non-ASCII characters inside tool-call arguments, the JSON payload the model generates, not the files it edits. You can write Chinese comments and Japanese commit messages. The trigger is specifically CJK content passed as a tool argument.
Is the "retry also failed" error fixed in a new Claude Code version?
There is no confirmed fix release as of Claude Code 2.1.160. The issue is labeled bug and duplicate on GitHub, meaning Anthropic has acknowledged it. Updating to the latest version is still recommended, as parser improvements ship frequently.
Does this error happen on Cursor or GitHub Copilot too?
Cursor and Copilot use different tool-call parsing implementations. The "tool call could not be parsed" error string is specific to Claude Code. Similar symptoms, such as dropped actions or mid-session failures, can occur in other AI coding tools, but the CJK parser trigger is Claude Code-specific.
Can I recover the lost turn after the error?
Not automatically. When the retry fails, the turn is dropped and the action does not execute. You need to resend the request. If the error recurs on the same request, switch to a new session before retrying, because the same payload will fail again in the same session.
Will Claude Code add better error recovery for failed tool calls?
The issue reporter on #63875 requested that Claude Code either recover gracefully by re-prompting and retrying successfully, or surface a clearer, actionable message instead of silently dropping the action. No timeline has been given, but the issue is tracked and labeled.