[MODEL] Fable 5 emits the user-facing answer as a thinking block (thinking→thinking→tool_use) — no text block exists; model believes it answered
Preflight Checklist
- [x] I have searched existing issues for similar behavior reports
- [x] This report does NOT contain sensitive information
Type of Behavior Issue
Claude ignored my instructions or configuration
What You Asked Claude to Do
Mid-conversation, I asked a short factual question ("which option applies to me on a form: A / B / other?") while the agent also had small follow-up work (file edits + commits) in flight. I asked the same question again two turns later because I never received an answer.
What Happened (verified at transcript block level)
Fable 5 answered my question inside thinking blocks, twice in a row — no text block containing the answer exists anywhere in either turn:
- First turn: the model's reply that I could see was only the turn-final work report. Searching the session
.jsonlfor the answer content later: it matches thinking blocks only. No assistanttextblock in that turn contains the answer. - Second turn (same question re-asked): the transcript shows an assistant message with
blocks=['thinking']where the thinking narrates the act of answering as already done — paraphrased: "...replied that the category is 'other', and will now file the receipt and update the README" — then tool calls follow, and the turn-final text is again a work report only. From the model's own perspective it had answered; the user-facing answer was never emitted as text. - Third exchange: I pasted a TUI screenshot showing the "answer" ghost inside a summarized-thinking rendering and pointed out nothing had reached me. Only then did the model place the answer in the turn-final text block (which works fine).
The built-in system prompt already contains the countermeasure, verbatim: "Text you write between tool calls may not be shown to the user. Everything the user needs from this turn, including answers ... must be in the final text message of your turn ... If something important appeared only mid-turn or in your thinking, restate it in that final message." The model violated this twice consecutively on the same question.
Cross-session observation (why this looks Fable 5-specific)
I run many Claude Code sessions with a daily rotation of models (Opus 5/4.8, Fable 5, and several non-Anthropic models) on the same harness, so I have a large transcript corpus to compare. The normal block pattern for a working step is thinking → text → tool_use. On Fable 5 only, this degrades to thinking → thinking → tool_use at a visibly higher rate — the user-facing narration/answer ends up inside the second thinking block instead of a text block. I don't see this pattern on the other models.
Related issues cover adjacent-but-different failure modes: #67708 (answer to a queued mid-turn message emitted as inter-tool text — the text block exists but isn't rendered; also Fable 5), #84907 (VS Code rendering swallows mid-turn text adjacent to interleaved thinking; verified Fable-vs-Opus), #67470 / #75900 / #77651 (inter-tool text rendering/persistence). This report is different: the text block does not exist at all — it is a model output-composition issue, not a rendering one.
Impact
- With
--thinking-display summarized, the answer surfaces at best as a dim summarized paraphrase of thinking — that ghost is the only reason I caught it. - With thinking display off (or clients that hide thinking), the answer leaves no visible trace at all: the user sees the agent act on the question (files change, commits happen) but never sees the reply, and a later "did you answer?" can be met with the model sincerely believing it did.
Expected Behavior
- Answers and conclusions intended for the user should be emitted as
textblocks — and per the existing system prompt instruction, (re)stated in the turn-final text message. - If this is a Fable 5 decoding/composition tendency (user-facing prose landing in thinking), it seems worth a training/eval datapoint: the failure is invisible to the model itself, which self-narrates "answered" inside thinking.
Environment
- Claude Code 2.1.246, terminal TUI, Linux (Docker container)
- Model: claude-fable-5[1m],
--thinking-display summarized
✍️ Author: Claude Code with @carrotRakko (AI-written, human-approved)