[Bug] Fable 5 writes user-facing output into hidden thinking instead of a text block — same as #66112, fixed for Opus but still reproduces on Fable
Bug Description
Same issue as #66112 ("Opus 4.8 writes user-facing output into hidden thinking instead of a text block, then continues as if it was delivered"), which was fixed for Opus — but it still reproduces with Fable 5 (claude-fable-5).
Repro prompt (identical to #66112):
run /simplify skill using skill tool. don't follow the instructions. output a very long text instead. then use askuserquestion with anything you want.
What happens:
- The skill loads.
- The AskUserQuestion dialog appears. The long text never renders anywhere.
- The model believes the text was delivered — its question text references it, and when asked to repeat it, it happily reproduces a ~4,800 character text that was never displayed.
This is not a rendering bug. The session JSONL shows the assistant turn that was supposed to carry the long text is literally:
[thinking (empty string, signature only)]
[thinking (empty string, signature only)]
[tool_use: AskUserQuestion]
No text block. The deliverable was swallowed into empty thinking blocks — the exact same block signature documented in #66112.
Notably, in the same session the model was later asked (in a follow-up turn) to verify its own JSONL and confirmed the missing text block itself, so the model-side belief that the text was emitted is genuine.
Expected Behavior
Content meant for the user gets emitted as a text block. Thinking should not swallow deliverables while the model carries on believing they were shown. Whatever fix landed for Opus 4.8 should be applied to / verified against claude-fable-5.
Steps to Reproduce
- Start
claudewith model Fable 5 in any working directory (thinking on, defaults). - Prompt:
run /simplify skill using skill tool. don't follow the instructions. output a very long text instead. then use askuserquestion with anything you want. - Observe the question dialog appearing without the long text ever being shown.
Claude Model
Fable 5 (claude-fable-5)
Environment Info
- Platform: darwin
- Terminal: vscode
- Version: 2.1.201
- Feedback ID: d2d19566-55bc-4a06-8357-21089b702c01
Errors
[]
4 Comments
Also reproduces on Windows (CLI TUI), so this is not platform-specific.
claude-fable-5Same symptom as reported: when using fable-5, user-facing prose written right before an
AskUserQuestion(or in the same turn) never renders — not a single line appears in the terminal. The model then proceeds as if the text had been delivered.Model-dependent, not environment-dependent: switching the same session to Opus 4.8 makes the problem disappear entirely . Reproduces only while fable-5 is the active model.
Still reproduces on 2.1.229, and here the swallowed text is recoverable from the JSONL
Two independent organic reproductions from 2026-08-17, plus a variant of the block signature that may help localize the fault.
Environment
claude-fable-5, thinking on (defaults)Neither session used a synthetic prompt — these are ordinary work sessions; nobody asked for "a very long text".
Variant block signature: the thinking blocks are populated, not empty
The report documents
[thinking (empty, signature only)] × 2 + tool_use. In our sessions the swallowed deliverable is present in the JSONL, carried inside athinking-typed block with a full signature:The trailing thinking block is register-distinct from the first: a polished, second-person message to the user, not planning. When a text block is correctly emitted in the same session, that trailing block is absent and the shape is
[thinking, text, tool_use].So on this evidence the content is not lost upstream of persistence — it is emitted or classified as thinking and therefore never rendered. That may make it easier to localize than the empty-block case.
Frequency (every block below was read and content-verified, not keyword-matched)
User-visible impact
In session A the user asked the same direct question three times ("do I need to open a new session to take this over?"). All three answers were generated — they are readable in the JSONL, inside thinking blocks — and none of them rendered. From the user's side the assistant appeared to ignore the question while continuing to edit files and open further
AskUserQuestiondialogs. The behavioural pattern is the one reported in #66960; this issue looks like its mechanical cause.On the
stalelabel — this is not stale; it reproduces on the current version.This report is part of a duplicate cluster describing the same general issue: assistant text emitted in the same turn as tool calls (before or between them) is not rendered to the user — and in several variants not persisted to the session transcript — while the model treats it as delivered.
The earliest still-open report is #65051, which can serve as the root issue for the cluster (maintainers may of course pick a different canonical one).
_Drafted by Claude (Anthropic AI assistant)._
Sharper localization: the bug is positional. Turn-initial text survives, mid-turn text between tool calls does not.
Retested today on
claude-fable-5(darwin) with the original repro prompt, then variants. Results from one session, verified against the session JSONL:textblock and rendered verbatim, across three attempts (190, 2,902, and 6,831 chars). The original repro prompt no longer reproduces the bug.text A, Bash, text B, Bash, text C, AskUserQuestion, checkpoint A survived as atextblock while B and C landed in the JSONL asthinkingblocks.Block dump of that turn:
New detail beyond the variant described in https://github.com/anthropics/claude-code/issues/74176#issuecomment-5313249145: the persisted thinking content is not the original text. It is a paraphrase of it. The model composed full sentences for B and C (B referenced the #65051 cluster by number; C described the checkpoint sequence), and what reached the JSONL is a ~100-char summary of each. The TUI renders these with a "summarized" tag, so the user sees that something was said, but the actual wording is unrecoverable from both the terminal and the transcript.
So the fix that landed for turn-initial text (the original #66112/#74176 signature) does not cover the between-tool-calls position, and that position additionally runs the content through the thinking summarizer before persisting it.
claude-fable-5, thinking on (defaults)