[BUG] Fable 5 routes assistant prose before tool calls into non-rendered 'narration' blocks — summaries preceding AskUserQuestion are invisible

Open 💬 0 comments Opened Jul 15, 2026 by beyondeye

Environment

  • Claude Code: 2.1.210 (CLI, Linux terminal)
  • Model: claude-fable-5
  • OS: Linux (Arch, kernel 7.0.x)

Summary

With Fable 5, assistant prose composed in the same turn as a subsequent tool call — most visibly AskUserQuestion — is emitted as a thinking-family narration block instead of a plain text block. Claude Code does not render narration durably (and persists it signature-only in the session jsonl), so the user sees nothing except the bare question widget. Multi-paragraph "here's a summary of my findings, now choose an option" turns are completely invisible.

Other Claude models (e.g. Opus 4.8) emit a plain text block in the same situation, which renders fine.

Repro

  1. Start Claude Code with model claude-fable-5.
  2. Give a prompt that makes the model present a markdown summary and then call AskUserQuestion in the same turn (e.g. "summarize the repo layout in a bulleted list, then ask me via AskUserQuestion whether to continue").
  3. Observe: only the AskUserQuestion widget renders; the summary text never appears on screen.

Evidence (session jsonl)

In the affected sessions, every invisible-summary assistant turn has this content shape:

thinking (thinking: "", signature: "...")   <- plaintext empty, signature-only
thinking (thinking: "", signature: "...")   <- base64 signature contains the block-type string "narration"
tool_use (AskUserQuestion)
  • Zero text blocks in the turn.
  • The two "thinking" blocks are persisted with empty thinking plaintext; their base64 signature payloads contain claude-fable-5 plus the block-type strings thinking and narration respectively.
  • usage.output_tokens ≈ 1885 while the only visible content (the tool_use input) is ~150 tokens — ~1700 tokens of prose vanished into the non-rendered blocks.

Controlled comparison in the same conversation:

| Turn shape (Fable 5) | Visible to user? |
|---|---|
| text → end turn (no tool call) | yes |
| AskUserQuestion widget payload (question/options) | yes |
| prose → AskUserQuestion same turn | no (becomes narration) |
| short text → Bash same turn | sometimes (nondeterministic — short text sometimes survives as a real text block) |

Notably, even when the model deliberately composes the content as final answer prose (not commentary), it is still emitted/classified as narration when an AskUserQuestion call follows in the same turn.

Expected

Either (a) Fable 5 emits user-directed prose as text blocks when a tool call follows, or (b) Claude Code renders narration blocks as durable, scrollback-visible output.

Related (but distinct) issues

  • #30422 — widget truncates the last line of preceding text (here there is no text block at all)
  • #23862 — AskUserQuestion covers preceding output
  • #65841 — widget intermittently never renders

View original on GitHub ↗