claude-code - 💡(How to fix) Fix [BUG] Model calls AskUserQuestion with no preceding text block — explanation stays in thinking and never reaches the user

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

The model called AskUserQuestion without emitting any preceding text block. The full explanation (root-cause analysis + a comparison table of 3 fix options) was drafted inside the model's thinking blocks but never made it into a text block, so the user saw a bare option dialog with no context. The dialog's options literally referenced "fix 1 + 2" — definitions that only existed in the never-emitted explanation.

This is not a rendering issue (distinct from #62493 / #64776 / #23862): the session transcript (JSONL) proves no text block was ever generated in that API response.

Root Cause

  1. User asked a debugging question; model investigated with subagents/file reads.
  2. A question dialog appeared asking to choose between "fix 1+2 / only fix 1 / all 3" — but the explanation defining those fixes was never displayed (because it was never generated as text).
  3. The model itself believed it had sent the explanation (it was in its thinking), and initially misdiagnosed the problem as a known rendering bug — the transcript disproved that.

Code Example

22:34:33  thinking
22:34:33  thinking
22:34:36  tool_use(AskUserQuestion)   ← zero text blocks in the entire response
RAW_BUFFERClick to expand / collapse

Summary

The model called AskUserQuestion without emitting any preceding text block. The full explanation (root-cause analysis + a comparison table of 3 fix options) was drafted inside the model's thinking blocks but never made it into a text block, so the user saw a bare option dialog with no context. The dialog's options literally referenced "fix 1 + 2" — definitions that only existed in the never-emitted explanation.

This is not a rendering issue (distinct from #62493 / #64776 / #23862): the session transcript (JSONL) proves no text block was ever generated in that API response.

Evidence (session JSONL)

The assistant API response containing the AskUserQuestion tool call:

  • message.id: msg_01VmPRwNqXFwRLn7stzG4vW8
  • requestId: req_011CbkufvjZus2BJauQp47T4
  • timestamp: 2026-06-05T22:34:36.890Z

Content blocks of that response, reconstructed from the transcript:

22:34:33  thinking
22:34:33  thinking
22:34:36  tool_use(AskUserQuestion)   ← zero text blocks in the entire response

For contrast, a later turn in the same session (2026-06-05T23:12) behaved correctly: text block followed by tool_use(AskUserQuestion), and rendered fine. An earlier session (2026-05-25, same machine) also shows thinking + text + tool_use(AskUserQuestion) responses. So the behavior is intermittent.

Possibly relevant pattern: the failing turn came at the end of a long multi-tool investigation (2 subagent Agent calls + several Read/Bash calls earlier in the same turn), whereas the correct turn was a direct text+question reply with no preceding tool calls.

What the user experienced

  1. User asked a debugging question; model investigated with subagents/file reads.
  2. A question dialog appeared asking to choose between "fix 1+2 / only fix 1 / all 3" — but the explanation defining those fixes was never displayed (because it was never generated as text).
  3. The model itself believed it had sent the explanation (it was in its thinking), and initially misdiagnosed the problem as a known rendering bug — the transcript disproved that.

Expected behavior

When AskUserQuestion options depend on an explanation, the model should emit that explanation as a text block in the same turn before the tool call. Consider reinforcing this in the system-prompt guidance for AskUserQuestion, or detecting/retrying when a turn ends in AskUserQuestion with no preceding text after a long tool-use sequence.

Environment

  • Claude Code v2.1.165 (CLI)
  • macOS (darwin 25.5.0)
  • Model: claude-opus-4-8[1m] (Opus 4.8, 1M context)
  • Running under the cmux wrapper app — but ruled out as a factor, since the transcript shows the text was never generated, and a control test in the same environment rendered text+dialog correctly

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

When AskUserQuestion options depend on an explanation, the model should emit that explanation as a text block in the same turn before the tool call. Consider reinforcing this in the system-prompt guidance for AskUserQuestion, or detecting/retrying when a turn ends in AskUserQuestion with no preceding text after a long tool-use sequence.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING