AskUserQuestion blocks invisibly behind the thinking spinner (no prompt shown) when extended thinking is active
Summary
When the agent invokes AskUserQuestion while extended thinking is active, the question UI never renders. Instead the TUI keeps showing the "thinking" spinner with its timer counting up, while the harness is in fact blocked indefinitely waiting for the user's answer. There is no visible cue that input is required.
The user has to guess that something is wrong and press Esc. Only then does the UI reveal "User declined to answer questions" together with the question text and options that were never displayed — and the tool returns a declined result the user never intended to give.
Observed behaviour
- Agent emits an
AskUserQuestiontool call (extended thinking enabled). - No question panel appears. The status line shows the normal "thinking…" spinner with an incrementing timer, indistinguishable from the agent actually working.
- The session is silently blocked on user input, but nothing signals this.
- After the user guesses and presses Esc, the UI finally shows
User declined to answer questionsplus the previously-invisible question(s) and option list. - The agent receives a "the tool use was rejected / User declined to answer questions" result, even though the user never saw the prompt and did not intend to decline.
This has been observed on more than one occasion.
Expected behaviour
When AskUserQuestion is pending, the question + selectable options should render immediately and the status should indicate the agent is waiting for user input, not "thinking". Pressing Esc should be an explicit decline of a visible prompt, not the only way to discover a hidden one.
Repro steps
- Start a session with extended thinking enabled.
- Get the agent into a flow where it calls
AskUserQuestion(e.g. to choose between two implementation approaches). - Observe: no prompt renders; the thinking spinner keeps counting up.
- Press Esc → the question and options appear retroactively alongside
User declined to answer questions.
Environment
- Claude Code: 2.1.152
- Model: claude-opus-4-8 (extended thinking active)
- OS: Debian trixie, x86-64
- Terminal: GNOME Terminal 3.54.0 (GNOME 47), VTE 0.78.0 (+BIDI +GNUTLS +ICU +SYSTEMD)
Possibly related
- #63143 —
AskUserQuestion+ extended thinking, where concurrent prompts overwrite each other and a cancel poisons the session. Shares the AskUserQuestion-during-extended-thinking interaction and a render-state failure, but the visible symptom there is prompts overwriting each other; here the prompt is wholly absent, replaced by the thinking spinner. - #62493 — picker overlays/obscures the prior message (a different render fault).
The distinguishing symptom here: the prompt is not merely garbled or obscured but never shown, and the only external evidence of the blocked state is a thinking spinner that never resolves.
🤖 This issue was filed with the assistance of Claude Opus 4.8 (1M context).
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗