Cluster 12 Tool Call Parsing Diagnostic

4 questions · ~2 minutes · browser-only, no signup, no telemetry · CC0 · v1.0 (2026-05-29)
The cluster: Five filings (#62123, #62344, #62467, #62700, #49747) document four distinct sub-patterns where Opus 4.7 produces tool calls the harness cannot parse. Each sub-pattern has a different recovery — misapplied /clear burns context on the wrong ones. This diagnostic asks four questions to identify which sub-pattern is most likely hitting your session.
Disclosure: The recovery section links to four advisory hooks in this repository (cc-safe-setup PRs #406, #419, #423, #424) that detect each sub-pattern at the boundary. The hooks are advisory only — they don't replace the upstream fix (the model attention layer for 12A/12B, the harness parser for 12C, the serialization boundary for 12D) — but they tell you which sub-pattern you're seeing so the right recovery is applied. Free, MIT-licensed.

4 Questions

1. Did the same prompt that worked yesterday now fail?
A session-progression signal. If yes, something accumulated in the running session that pollutes new tool calls.
2. Do you have extended thinking enabled?
If the failure stops when you turn extended thinking off, that's evidence of the serialization-boundary defect.
3. What does the actual tool output area show after the "parse failed" notice?
Inspect the tool output panel beneath the failure notice. If it has content, the tool actually executed and the notice is spurious.
4. How long are the failing tool call arguments?
Long arguments increase the chance of legacy-format tag leakage into the new format, tripping the parser.

Sub-Pattern Likelihood

About the Four Sub-Patterns

12A — Long-session few-shot poisoning

Source: #62344. Errors accumulate as the session grows. Past malformed-recovery attempts pollute the recent-tool-call context, biasing subsequent tool calls toward the same malformed shape. Recovery: /clear. Defense hook: long-session-malformed-tool-call-detector.sh (PR #406, 40 tests).

12B — Extended-thinking serialization defect

Source: #62467. The tool call generated inside a thinking block becomes inconsistent at the serialization boundary. Surfaces specifically with reasoning effort enabled. Recovery: turn off extended thinking, or switch model temporarily. /clear does not help because the defect re-occurs on the next thinking-enabled turn. Defense hook: extended-thinking-tool-use-mismatch-detector.sh (PR #419, 43 tests).

12C — Spurious "parse failed" notice on a successful call

Source: #62700. The tool call actually executed correctly, but the notice fires anyway. The fragment-of-"call" leakage some users describe is a candidate for this — the runtime shows artifact output even though the tool dispatched. Recovery: check the actual tool output before retrying. Both /clear and model switch make it worse by burning context. Defense hook: spurious-malformed-notice-detector.sh (PR #423, 53 tests).

12D — Legacy XML format mix in tool arguments

Source: #49747. Specific to long tool-call inputs. The legacy XML closing tag leaks into the new format and trips the parser. Recovery: shorten arguments, split one long call into multiple shorter ones, reduce argument verbosity. /clear does not help because the same long input will reproduce. Defense hook: xml-format-leak-detector.sh (PR #424, 58 tests).

Free Materials