[BUG] Desktop App (Cowork/local agent mode): AskUserQuestion never renders — hangs until session stop auto-denies (regression since 2026-06-03; re-filing locked #26940)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Since 2026-06-03 ~14:38 CEST, every AskUserQuestion call in a Cowork (local agent mode) session on Claude Desktop for macOS emits a tool permission request that never surfaces in the UI. The user sees only the frozen status line ("Using AskUserQuestion…"). The pending request is resolved as deny only when the session is stopped. Before the break: 15+ consecutive successful renders May 19 – Jun 3 12:15 across three rotated logs. After: zero.
This is the same defect as #26940 (filed 2026-02-19, closed by the stale-bot as not_planned with no maintainer response, then locked). The lock message asks for a new issue — this is that issue, with a regression timeline and elimination evidence the original lacked.
Success/failure record for every AskUserQuestion emission in retained logs (main.log, main1.log, main2.log):
| Period | Emitted | Answered | Hung until stop-deny |
|---|---|---|---|
| May 19 – Jun 3 12:15 | 13 | 12 | 1 (recovered on immediate retry) |
| Jun 3 14:38 → present | 2 | 0 | 2 |
Ruled out:
- Local app state. Survived multiple app restarts and a claude-code update + IndexedDB rebuild on 2026-06-04 09:48. The renderer's earlier
Internal error opening backing store for indexedDB.openerrors fired heavily during the working window and were absent after the rebuild while the failure persisted. Unrelated. - The permission pipeline. Other tools ride the same channel and render fine throughout: 90+
Emitted tool permission requestevents for Desktop Commander, file tools, and Playwright in the same window, all approved interactively. AskUserQuestion is the only tool withBridge resolving permission … behavior=denyevents in three log files. - Payload or skill context. The same skills issued the successful June 3 morning calls.
- Binary regression. The break occurred mid-instance. The app process that started 2026-06-02 20:34 on 1.9659.4 ran without restart through 2026-06-04 09:48 (
Starting appevents bracket the window). That same process answered AskUserQuestion at 12:15 on June 3 and hung at 14:38, same binary. The failure then persisted across the update to 1.10628.2 on June 4. A mid-instance onset that survives a version change points at remotely served frontend code or a server-evaluated flag, not the app binary. The window for the server-side change: 2026-06-03 12:15–14:38 CEST (10:15–12:38 UTC). (A renderer asset-reload storm ofFailed to fetcherrors from assets-proxy.anthropic.com is logged at 14:25, between last success and first failure.)
Related issues:
- #26940: identical symptom and environment, Feb 2026, closed-stale without response. This issue supersedes it.
- #64776: Desktop App AskUserQuestion widget defect filed 2026-06-02, one day before this regression window.
- #63806: question UI invisible behind the thinking spinner under extended thinking (CLI); possibly the same suppression mechanism.
- #29773: the CLI after-Skill variant, fixed 2026-04-18. This tool's rendering breaks per surface; the fixes land once an issue gets triaged.
What Should Happen?
The interactive question card (or at minimum a permission prompt) renders inline when AskUserQuestion is called, as it did on the same machine through 2026-06-03 12:15. The agent receives the user's selections.
Error Messages/Logs
Failure signature (the deny fires at the exact second of session stop, never from user action):
2026-06-03 14:38:43 [info] Emitted tool permission request 03675f88-7c00-4d30-888b-43679acace02 for AskUserQuestion in session local_7e5aa2aa-...
2026-06-04 06:42:43 [info] LocalAgentModeSessions.stop: sessionId=local_7e5aa2aa-...
2026-06-04 06:42:43 [info] Bridge resolving permission 03675f88-7c00-4d30-888b-43679acace02: behavior=deny (tool: AskUserQuestion)
2026-06-04 10:55:14 [info] Emitted tool permission request 22ea72c5-ac6f-4eb6-a9d1-9cb01aa9e1f2 for AskUserQuestion in session local_848a36e2-...
2026-06-04 10:56:46 [info] LocalAgentModeSessions.stop: sessionId=local_848a36e2-...
2026-06-04 10:56:46 [info] Bridge resolving permission 22ea72c5-ac6f-4eb6-a9d1-9cb01aa9e1f2: behavior=deny (tool: AskUserQuestion)
Working signature, last seen 2026-06-03 12:15 (same machine, same skills):
2026-06-03 12:15:19 [info] Emitted tool permission request 7834d736-... for AskUserQuestion in session local_5147e0a2-...
2026-06-03 12:15:28 [info] Received permission response for 7834d736-...: once (tool: AskUserQuestion)
Steps to Reproduce
- Start a Cowork (local agent mode) session in Claude Desktop for macOS (observed on app 1.9659.4 and 1.10628.2, claude-code 2.1.161, claude-opus-4-8 with extended thinking enabled).
- Give a task that leads Claude to call
AskUserQuestion(any skill that collects structured input, or ask it to use the tool directly). - Observe: the status line shows the tool call, but no question card or permission prompt ever appears.
- Stop the session.
~/Library/Logs/Claude/main.loglogsBridge resolving permission ...: behavior=deny (tool: AskUserQuestion)at the stop timestamp.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Desktop app 1.9659.4 through 2026-06-03 12:15 CEST (break was mid-instance on the same version; server-side change suspected)
Claude Code Version
2.1.161 (Claude Code) — bundled in Claude Desktop 1.10628.2, Cowork local agent mode
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other
Additional Information
Impact: blocks every interactive question flow in Cowork — skills that gate on user confirmation stall silently. The stop-deny workaround carries its own hazard: cancelling a pending tool call during extended thinking can poison the session with unrecoverable 400 thinking blocks cannot be modified errors (#63143, #63231).
Environment detail: model claude-opus-4-8, extended thinking (maxThinkingTokens 31999); Cowork local agent mode sessions. The Terminal/Shell field below is N/A — this is the desktop app UI, not a terminal session.
Happy to provide fuller sanitized log excerpts or test a diagnostic build.
8 Comments
Confirming this regression persists on the latest build, with a slightly different surface symptom (overlaps #27353).
Environment
Symptom variant
When the agent calls
AskUserQuestionmid-task, the Desktop app does not render the interactive modal. It showsRequested+ the question header chip, then dumps the rawquestions: [...]JSON payload as plain text, and the turn ends withTool execution was interrupted.The task halts.The identical flow renders and works correctly in the terminal CLI (
claude), so this is specific to the Desktop UI bridge, not Claude Code core.This is on a newer Desktop build (1.11187.4) than the original report (1.9659.4 / 1.10628.2) and the latest Claude Code (2.1.169) — so it is not fixed as of 2026-06-08.
Repro shape
Sanitized but structurally identical to the failing call: 2 questions,
multiSelect: false, 3 options each, long non-ASCII (Korean/CJK) descriptions.CLI renders this fine; only Desktop fails. Happy to attach a screenshot or session logs if useful.
Corroborating datapoint — newer build (Desktop 1.11847.5 / embedded runtime 2.1.170), plus a client-side elimination matrix that supports the server-side framing in the issue body
Following up on my 2026-06-09 comment. The regression persists, and on this newer build the failure signature has moved further upstream, which I think strengthens the "remotely-served frontend / server-evaluated flag" thesis in the original report.
Environment
ps): 2.1.170 — auto-updated from 2.1.165 since onset; symptom unchanged across every version in betweenmain.log:Passing 7 plugin(s) to SDK), remote-control sessionWhat changed since 2026-06-09
On 1.11187.4 I saw AUQ emit a permission request that never surfaced, then dump raw
questions: […]JSON and end withTool execution was interrupted.On 1.11847.5 it's quieter and more telling. When the agent calls
AskUserQuestion:main.loglogs noEmitted tool permission requestline for AUQ at all — whereasExitPlanModeon the same day, same machine logsEmitted tool permission request … for ExitPlanModenormally (3×). So this is AUQ-specific, not a generic permission-pipeline outage.claude.ai-web.log) contains the stringAskUserQuestionzero times, ever.healthy cycle (hadFirstResponse=true)— i.e. the runtime thinks everything is fine while the AUQtool_resultis silently dropped, leaving an orphantool_use. UI shows onlyRequested → Stopped.This matches the issue body's "the channel is selectively dead for AUQ only" observation, and #65382's "agent layer stays healthy, only the webview drops state."
Client-side elimination matrix (every lever, all reproduce identically)
| Variable tested | Action | Result |
|---|---|---|
| Embedded runtime version | auto-updated 2.1.165 → 2.1.170 | no change |
| Network / asset fetch | on-host TLS-inspection layer allowlisted 1st-party domains → cold TLS handshake 1.0–3.5s → 0.08–0.17s (~20×) | no change; zero
Failed to fetch/QueryClient errors at failure timestamps || MCP connector | removed a local MCP server (127.0.0.1) + full restart | no change |
| App restart |
Cmd+Qfull quit + relaunch | no change || Session state | brand-new Cowork session (no accumulated orphans) | no change |
Onset timing supports a staged rollout
My onset is ~2026-06-08/09; the original report's is 2026-06-03. Two machines, different onset dates, identical symptom, no correlated client/binary change on either — consistent with a cohort-staged server-evaluated change rather than anything local. That, plus the fact that no client-side variable above moves the needle, is why I believe the root cause is server-side (remotely-served Cowork frontend code or a server-evaluated feature flag), exactly as the issue body argues with the 06-03 10:15–12:38 UTC change window.
Note on
--safe-modeFor anyone tempted to test
CLAUDE_CODE_SAFE_MODE=1: it only disables runtime-side customizations (CLAUDE.md/plugins/skills/hooks/MCP). If the broken layer is the remotely-served webview surface, safe mode won't change AUQ rendering — confirmed inert here.Happy to provide masked log excerpts (permission-emit lines for the AUQ vs ExitPlanMode contrast, the healthy-cycle close, the curl handshake before/after) on request.
Still reproducing on a newer build (Desktop 1.14271.0 / Claude Code 2.1.181, 2026-06-20) — with a host-binary trace that names the mechanism behind @chongwon83's "orphan tool_use," plus one more eliminated lever.
Environment
CLAUDE_CODE_CHILD_SESSION=1,CLAUDE_CODE_ENTRYPOINT=claude-desktop, local agent modeCLAUDE_CODE_ENABLE_ASK_USER_QUESTION_TOOL=trueSame signature as the 1.11187.4 variant: the AUQ call returns
[Tool result missing due to internal error]and the turn endsTool execution was interrupted. CLI renders fine; only the Desktop embedded session fails. So it's unfixed on a build newer than any in this thread.Host-side trace — what the agent actually receives. @chongwon83's "orphan
tool_use/ silently droppedtool_result" has an exact counterpart in the host binary. From the 2.1.181claudebinary:z_m = "[Tool result missing due to internal error]".tool_use↔tool_resultreconciliation loop, which backfills a synthetic error result for anytool_useid with no matching result:So: renderer never returns an answer → orphan
tool_use→ host backfillsz_m. That's the agent-visible half of the bridge'sbehavior=deny-at-stop.One more eliminated lever: user hooks. This machine has PreToolUse + PostToolUse hooks matched to
(AskUserQuestion|mcp__.*__AskUserQuestion)installed. Failure is identical with them present, and the host's own log string proves a hook isn't the deny source:A PreToolUse hook returning
deferis ignored in interactive mode — a no-op. Third-party AUQ hooks are ruled out.Thanks for tracing this to the host binary, @mandosanti06 — the z_m
reconciliation path closes the loop on the orphan tool_use I flagged
earlier. To keep the layers straight: that backfill is the agent-visible
symptom (the host fabricating a tool_result for an id that never got one),
not the root cause. The real failure is upstream — the Desktop embedded
surface never renders the AUQ widget or returns an answer.
Adding independent corroboration that this is server-side, not local.
Every local lever is a null result. The failure persisted unchanged through
all of it:
Runtime: it survived every update in the window — [CCD] Initialized with
version shows 2.1.165 (onset) → 2.1.170 → 2.1.177 → 2.1.181, and I'm now on
2.1.183 (newer than your 2.1.181), still failing.
Network: our IT team allowlisted *.anthropic.com from TLS inspection; cold
asset fetch from assets-proxy.anthropic.com dropped from ~1–3.5s to
sub-100ms — bug unchanged. So the assets-proxy "Failed to fetch" storm
noted earlier in this thread isn't the cause, at least on my side.
Local state: plugins/MCP disabled (incl. a local Figma MCP), IndexedDB
rebuild, full Cmd+Q restart, fresh chat — all unchanged.
Onset timing fits a staged/server rollout. Mine started ~6/8–6/9 (on
2.1.165); the canonical report here is 6/3 with the same binary regressing
mid-instance, no restart. A cohort-based server rollout explains the date
spread; no client-side cause does.
Log signature. Across the logged window, main.log records Emitted tool
permission request for ExitPlanMode (37×), Workflow (2×), and a Chrome MCP
tool (1×) — and zero for AskUserQuestion. The string AskUserQuestion never
appears in the renderer log (claude.ai-web.log) at all; the only hits
anywhere are my own debug session titles. The turn still closes on a
healthy cycle (hadFirstResponse=true). The only background noise is a
startup MaxListenersExceededWarning (11 listeners on $eipc_message$,
AutoUpdater/AppPreferences — present even immediately after a restart, so
not the trigger). So this is a selective silent drop of the AUQ path: the
request is never even emitted to the permission pipeline, yet the agent
layer stays healthy — matching #65382's "only the webview drops state."
On the hooks lever: my setup matches yours exactly — same
(AskUserQuestion|mcp__.*__AskUserQuestion) matchers (gstack's
question-preference-hook on PreToolUse, question-log-hook on PostToolUse),
so your defer-ignored observation reproduces on a second machine with the
same hook config. Agreed that PreToolUse defer is ignored in interactive
mode, so it can't be the deny source. One caveat to keep the claim tight —
that eliminates the defer decision specifically, not all hook interference;
a clean repro with hooks fully removed would close it completely.
Net: still reproducing on Desktop 1.14271.0 / Claude Code 2.1.183 as of
2026-06-21, and it lines up with the broader June regression family
(#67474, #67426, #67071, #65620) where assistant text and tool_use content
get dropped from the Desktop/TUI surface. #26940 was the same symptom back
in February before it was closed stale and locked.
Could we get a tracking signal or rough ETA on this? Happy to share
sanitized main.log / claude.ai-web.log excerpts or run a controlled
diagnostic build.
2026년 6월 21일 (일) 오전 1:42, Armando J. Santiago Merle <
@.***>님이 작성:
Bump — still fully reproducible on latest as of 2026-06-24: Claude Desktop 1.15200.0 / Claude Code 2.1.185 (and every build since the first report). No change.
This is 21 days since onset (~2026-06-03) with no maintainer acknowledgment here or on any duplicate (#67474, #67426, #67071, #65620 — all OPEN, same root cause).
Triage shortcuts:
main.logemitsEmitted tool permission requestfor ExitPlanMode but zero for AskUserQuestion; renderer logs (claude.ai-web.log,cowork_vm_node.log) contain zero "AskUserQuestion" strings. The "[Tool result missing due to internal error]" message is a downstream reconciliation back-fill of the orphanedtool_use— a symptom, not the cause.Could a maintainer please acknowledge + assign triage, and confirm whether this is fixable / rollback-able server-side without a client release? Full logs available. 🙏
Confirming this is still broken on the latest build.
AskUserQuestion silently fails to render in the macOS desktop app — the question never reaches the webview and the call returns no response.
Environment
Regression window (from my own logs)
Emitted tool permission request … for AskUserQuestion, followed byReceived permission response … once (tool: AskUserQuestion)andtool_calls: [{ tool_name: 'AskUserQuestion', approved: true }].Emitted tool permission request … for AskUserQuestionlines in~/Library/Logs/Claude/main.log. The request is dropped before it ever reaches the renderer. Other tools (ExitPlanMode, MCP tools) still emit permission requests normally in the same sessions.Ruled out as cause
Cannot use 'in' operator to search for 'properties' in truein createProxyServers → setupMcpAndPlugins → warmSession). I disabled it and confirmed 0 crashes on relaunch. AskUserQuestion still fails to render, so the MCP crash was unrelated to this bug.This matches the server-side-regression thesis in this thread: the agent session is healthy, only the AskUserQuestion render path is suppressed.
재현 (2026-07-05, Desktop app)
AskUserQuestion호출 시 여전히 미렌더 — 모달이 뜨지 않고 다음 에러로 즉시 실패:같은 세션에서 두 번 연속 재현 (동일 증상, 다른 질문 내용). 워크어라운드로 평문 질문 전환 후 정상 진행.
Still broken on 2026-07-23. Posting a full local-elimination matrix, since this thread has gone 18 days without maintainer response and the sibling report #65382 was just auto-closed as
staleon 2026-07-21 without ever being fixed.Environment
cowork_plugin_host_ops=true,claudeai_cowork_backend_marketplaces=true)Symptom (unchanged, matches @chongwon83's 2026-07-05 report verbatim)
Every
AskUserQuestioncall fails immediately with:No modal renders. In
~/Library/Logs/Claude/main.logthere are zeroEmitted tool permission request … for AskUserQuestionlines, whileExitPlanModeand MCP tools emit and render normally in the same sessions. The request is dropped before it reaches the renderer.Regression window from my logs
Emitted tool permission request … for AskUserQuestion, thenReceived permission response … once, thentool_calls: [{ tool_name: 'AskUserQuestion', approved: true }].Local causes eliminated (each verified in logs, not assumed)
| Lever tested | Result |
|---|---|
| Soft restart (Cmd+Q + relaunch) | no change |
| Clean restart — all
Claude Helperprocesses killed first | no change || Crashing Grafana MCP disabled (was failing
createProxyServers → setupMcpAndPlugins → warmSession256×,Cannot use 'in' operator to search for 'properties' in true) | crashes 256 → 0; AUQ still fails || All other MCP servers | build proxies cleanly; sessions
warmed successfully|| MCP tool-count / overload (250 → ~200 tools; 56 child procs / 5.7 GB cleared) | no change |
| VPN disabled —
assets-proxy.anthropic.comDNS 3.08s → 0.02s, vendor bundles now HTTP 200 (had 463TypeError: Failed to fetch) | no change |So the
Failed to fetchstorm and the MCP crash were real but independent bugs. With every one of them fixed and a fully clean process tree,AskUserQuestionstill never renders. There is no remaining client-side lever.Ask: this is labeled
bug/regression/area:cowork/area:desktop/platform:macosand has had no maintainer acknowledgment in the ~7 weeks since onset. Please either fix the AUQ render path in the Cowork/local-agent SDK adapter, or provide a supported way to opt an account out of the Cowork cohort. Given #65382 was auto-closed as stale rather than resolved, flagging explicitly that this is not inactive — it reproduces on the newest build today.Workaround for anyone landing here: plain-text questions work, and the standalone
claudeterminal CLI renders interactive prompts normally (different render path).