[BUG] Thinking blocks return empty thinking: "" (signature only) since ~July 16 — all models, server-side, not Fable-specific
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Since approximately July 16, 2026 (~07:00 PT), every thinking content block in my sessions arrives with an empty
thinking field and only a populated signature:
{"type": "thinking", "thinking": "", "signature": "CAISugQK..."}
This makes thinking invisible in the transcript view and to any tooling that reads the session JSONL. Reasoning
clearly still happens (latency and signatures present) — the text just never reaches the client.
Evidence from my session archive (40+ sessions, JSONL transcripts, thinking-block counts):
┌─────────────────┬─────────────────────────────────┬───────────────────┬─────────────────┬───────────┐
│ Date range │ Models │ Client versions │ Thinking blocks │ With text │
├─────────────────┼─────────────────────────────────┼───────────────────┼─────────────────┼───────────┤
│ Jul 8 – Jul 15 │ claude-fable-5, claude-opus-4-8 │ 2.1.204 – 2.1.210 │ ~4,500 │ ~100% │
├─────────────────┼─────────────────────────────────┼───────────────────┼─────────────────┼───────────┤
│ Jul 16 – Jul 18 │ claude-fable-5, claude-opus-4-8 │ 2.1.210 – 2.1.214 │ ~1,050 │ 0 │
└─────────────────┴─────────────────────────────────┴───────────────────┴─────────────────┴───────────┘
Three points that narrow the cause:
- Not model-tier-specific. Opus 4.8 sessions on Jul 16–17 are 100% empty (62/62, 24/24, 75/75, 12/12), identical to
Fable 5. Issue #49268 attributes this to Mythos-class models defaulting to omitted thinking — my data says the same
behavior hit Opus 4.8 at the same hour.
- Not the client version. The same client build (2.1.210) received full thinking text in a Jul 15 20:13 session and
all-empty in a Jul 16 08:00 session. Nothing changed on my end between them.
- Clean cutover. Last session with text: Jul 15 20:13 PT (Opus 4.8, 190/190). First all-empty: Jul 16 07:42 PT. No
mixed sessions after the cliff.
Repro/check — count empty vs populated thinking blocks in any transcript:
jq -r 'select(.message.content|type=="array") | .message.content[] | select(.type=="thinking") | if
(.thinking|length)==0 then "EMPTY" else "TEXT" end' <session>.jsonl | sort | uniq -c
What Should Happen?
Expected: thinking text present in transcripts/UI as before Jul 16 (or, if omission is now intended, a documented
setting to opt back in).
Error Messages/Logs
Steps to Reproduce
- Start a new Claude Code session on any current model (reproduced on both claude-fable-5 and claude-opus-4-8, client
2.1.210 through 2.1.214) with thinking enabled (effort medium or higher, or alwaysThinkingEnabled: true).
- Send any prompt that triggers extended thinking (e.g. a nontrivial coding question).
- Press ctrl+o (verbose/transcript view) to view the response's thinking — observe no thinking text is shown.
- Confirm at the data layer: open the session transcript at ~/.claude/projects/<project>/<session-id>.jsonl (Windows:
%USERPROFILE%\.claude\projects\...) and inspect any thinking content block, or run:
jq -r 'select(.message.content|type=="array") | .message.content[] | select(.type=="thinking") | if
(.thinking|length)==0 then "EMPTY" else "TEXT" end' <session>.jsonl | sort | uniq -c
- Observed: every thinking block is {"type":"thinking","thinking":"","signature":"..."} — empty text, populated
signature. 100% of ~1,050 blocks across all sessions since Jul 16 ~07:00 PT.
- Expected: thinking contains the reasoning text, as it did in every session through Jul 15 (same client versions,
same settings).
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.214
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗