[BUG] Model calls AskUserQuestion with no preceding text block — explanation stays in thinking and never reaches the user

Resolved 💬 2 comments Opened Jun 5, 2026 by gaozhitw Closed Jun 9, 2026

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

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗