[BUG] Opus 4.7 tool calls fail with "The model's tool call could not be parsed (retry also failed)" since 2026-05-20

Resolved 💬 4 comments Opened May 21, 2026 by goldeneggg Closed May 21, 2026

Preflight Checklist

  • [x] I have searched existing issues and this is not a duplicate
  • [x] I am filing a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

Claude Opus 4.7 assistant turns end with stop_reason: tool_use, but the response body contains no tool_use block — only thinking and text blocks. Claude Code injects Your tool call was malformed and could not be parsed. Please retry.; the retried response again contains no tool_use block, and the turn ends with:

The model's tool call could not be parsed (retry also failed).

The thinking-block signatures decode to a protobuf model-name field. Two distinct values appear: claude-opus-4-7 (a 15-byte length-prefixed string) and claude-quoll-v7-hr-fast-ab-high-p (a 33-byte length-prefixed string). This value changed by date. The table below is a full (not sampled) decode of every Opus 4.7 assistant response that has a thinking-block signature; 0 entries failed to decode:

| Date | claude-opus-4-7 | claude-quoll-v7-hr-fast-ab-high-p | retry also failed events | Please retry events |
|---|---|---|---|---|
| 05-19 | 174 (100%) | 0 | 0 | 0 |
| 05-20 | 8 | 45 | 0 | 4 |
| 05-21 | 0 | 491 (100%) | 29 | 70 |

Every malformed (no tool_use block) response decodes to claude-quoll-v7-hr-fast-ab-high-p.

The usage_speed field is standard for every Opus 4.7 response in this period, including all malformed ones. Across the entire local transcript DB (73,830 messages), the count of responses with usage_speed=fast is 0. /fast is unavailable on this account (no usage credits).

What Should Happen?

A response with stop_reason: tool_use must contain a tool_use block. Opus 4.7 tool calls produced no retry also failed events while the signature model-name value was claude-opus-4-7 (through 05-19).

Error Messages/Logs

# Injected by Claude Code after the response with no tool_use block:
Your tool call was malformed and could not be parsed. Please retry.

# Shown after the retried response again has no tool_use block:
The model's tool call could not be parsed (retry also failed).

Malformed assistant message shape (from decoded transcripts):

  • stop_reason = tool_use
  • content blocks = thinking + text only (no tool_use block)
  • thinking-block signature model-name field = claude-quoll-v7-hr-fast-ab-high-p
  • usage_speed = standard

Steps to Reproduce

  1. Use model = Claude Opus 4.7 (signature model-name field claude-quoll-v7-hr-fast-ab-high-p as of 2026-05-21).
  2. Run tasks that require multiple tool calls with extended thinking (file edits, bash, searches).
  3. The assistant intermittently returns stop_reason: tool_use with no tool_use block, which ends the turn with The model's tool call could not be parsed (retry also failed).

On 2026-05-21 this produced 70 Please retry events and 29 retry also failed events. All 29 retry also failed events originate from Opus 4.7 responses; 0 originate from Sonnet 4.6 responses in the same period.

Claude Model

Opus (Claude Opus 4.7; signature model-name field claude-quoll-v7-hr-fast-ab-high-p)

Is this a regression?

Yes — it worked before.

Last Working Version

retry also failed events: 0 through 05-19, 0 on 05-20, 29 on 05-21. While the signature model-name value was claude-opus-4-7 (through 05-19) there were 0 such events. Claude Code was upgraded from 2.1.145 to 2.1.146 on 2026-05-21.

Claude Code Version

2.1.146

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

zsh

Additional Information

  • Per-date signature model-name value (full decode), usage_speed, and recorded failure events:

| Date | Opus 4.7 model-name value (decoded) | usage_speed | retry also failed | Please retry |
|---|---|---|---|---|
| 05-19 | claude-opus-4-7 (174/174) | standard | 0 | 0 |
| 05-20 | claude-opus-4-7 (8) + claude-quoll-v7-hr-fast-ab-high-p (45) | standard | 0 | 4 |
| 05-21 | claude-quoll-v7-hr-fast-ab-high-p (491/491) | standard | 29 | 70 |

  • Decoding detail: the model name is a length-prefixed protobuf string field (0x32, length 0x0f=15 for claude-opus-4-7; 0x32, length 0x21=33 for claude-quoll-v7-hr-fast-ab-high-p). A trailing 8 seen in naive strings output (e.g. ...-high-p8, claude-opus-4-78) is the next field's tag byte 0x38, not part of the model name.
  • The 29 retry also failed events on 05-21 by cwd: 18 across three same worktrees (14 + 3 + 1) and 11 in one more workspace; all are Opus 4.7 responses.
  • usage_speed is standard for all responses; usage_speed=fast count in the DB is 0; /fast is unavailable (no usage credits).
  • The internal meaning of the claude-quoll-v7-hr-fast-ab-high-p value is not determinable from client-side data.
  • An exact malformed rate cannot be derived from the local transcript export: tool_use blocks are not consistently persisted in the export (responses on 05-18/05-19, which had 0 failures, also show absent tool_use blocks in the export). Only Claude Code's recorded Please retry / retry also failed events are cited above.

View original on GitHub ↗

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