Assistant text between tool calls and AskUserQuestion is never persisted to the session transcript (lost from UI, ctrl+o, and resume)
Summary
When a single assistant turn has the shape tool calls → multi-paragraph assistant text → AskUserQuestion, the assistant text block is never rendered in the terminal, is absent from the ctrl+o transcript view, and is never written to the session .jsonl transcript on disk — while the same turn's AskUserQuestion tool_use IS persisted. The text is permanently lost from the session record (it would not survive resume/--continue), even though it demonstrably survives in the API-side conversation.
Environment
- Claude Code CLI v2.1.207, native Windows 11 (PowerShell terminal)
- First noticed around v2.1.200+ (did not observe this behavior on earlier versions)
Turn shape that triggers it
- Assistant makes several
Edittool calls (applying file changes) - Assistant emits a long multi-paragraph text block (an analysis meant for the user)
- Assistant calls
AskUserQuestionin the same turn
The AskUserQuestion dialog renders; the preceding text block does not appear at all.
Evidence that this is a persistence drop, not a display overlay
Verified by grepping the session's .jsonl under ~/.claude/projects/<project>/ (phrases redacted here; method is what matters):
- Several distinctive phrases from the missing text block: 0 hits across every session file for the project.
- The same turn's
AskUserQuestiontool_use content: persisted (tool call + result both present). - The following turn's plain-text final message: persisted normally (control).
- The model reproduced the missing block verbatim in a later turn when asked, so the block still existed in the live API-side conversation history — it was dropped only at transcript persistence.
Because ctrl+o renders from the transcript, the block is unrecoverable in the UI, and would be permanently lost on session resume.
Related (but distinct) issues
- #58207 / #30422 — AskUserQuestion overlay clipping the last line(s) of preceding text: cosmetic; content is persisted. Here the content is never persisted.
- #24691 — streaming text vanishing when followed by tool calls: reverse ordering (text → tools). Here the lost text sits between tool calls and AskUserQuestion.
- #21751 — assistant text not written to transcript: same symptom family, but without the tool-calls→text→AskUserQuestion trigger shape.
Expected
Every assistant text block in a turn is persisted to the session transcript and visible in ctrl+o, regardless of surrounding tool calls; interstitial text preceding AskUserQuestion should at minimum survive in the transcript even if the live UI prioritizes the dialog.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗