Regression in 2.1.150-2.1.158: malformed tool_use blocks not parseable, retry-resistant
Summary
Starting in 2.1.150 (and severely in 2.1.158), the model frequently emits malformed tool_use blocks that the CLI cannot parse — Your tool call was malformed and could not be parsed. Please retry. The single automatic retry usually also fails, aborting the turn. On 2.1.158 this fires constantly and makes interactive work largely unusable.
Environment
- Claude Code native install, macOS (Darwin 25.x)
- Models:
claude-opus-4-7andclaude-opus-4-8 - Affected CLI versions: 2.1.150 – 2.1.158
Version bisection (from ~430 local session transcripts)
| Version | Sessions affected | Malformed events |
|---|---|---|
| 2.1.37 – 2.1.148 | 0 (hundreds of sessions, months) | 0 |
| 2.1.150 | first occurrence | 1 |
| 2.1.152 | 5 / 16 | 19 |
| 2.1.156 | 1 / 25 | 5 |
| 2.1.158 | 7 / 12 | 68 (~9 per affected session) |
Everything at or below 2.1.148 is completely clean across hundreds of sessions and months of use; the regression is clearly introduced in the 2.1.150 line and peaks at 2.1.158.
Characteristics
- Cross-model: occurs on both
opus-4-7andopus-4-8 - Not correlated with compaction (
isCompactSummary= 0 in failing sessions), session length, or payload size - Tool-agnostic: failures hit
Read(12),Edit(13),Bash(7),TaskUpdate,ToolSearch,WebSearch,Write,Skill, and MCP calls. Even a minimalRead(single path argument) fails — so it is not a payload/serialization-size issue. - ~50% of malformed events do not recover on the injected retry (
retry also failed).
Impact
On 2.1.158, skill invocations frequently die at the first step, and agentic / ultracode workflows (high tool-call volume) are hit hardest — they break repeatedly within a single session.
Workaround
Downgrade to 2.1.149 (pre-regression, 0 events) or 2.1.156 (near-clean: 1/25 sessions).
---
Filed from local session-log analysis. Counts are reproducible via grep -c "malformed and could not be parsed" over ~/.claude/projects/*/*.jsonl, bucketed by each transcript's version field.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗