Claude Code in Desktop app silently stalls mid-turn — no UI indication, requires user interrupt to recover

Resolved 💬 3 comments Opened Mar 29, 2026 by obrienatimothy-sketch Closed Apr 2, 2026

Bug Description

Claude Code (in the Desktop app) frequently stalls mid-turn after announcing a tool call. It says it's going to read a file, write a mockup, or take a screenshot — then nothing happens. No tokens streaming, no spinner, no "clauding" animation, no error message. The only way to recover is to send a message (I typically just type "ok") which interrupts the stalled turn and gets Claude responding again.

Evidence from Logs

Frequency: ~40 "ok" interrupts in 2 days

I searched my transcript backups for bare "ok" messages I sent purely to un-stick frozen turns:

  • Session 63bd3ace (Mar 28, 7pm–11:42pm): 26 "ok" messages in 4.5 hours — one every ~10 minutes
  • Session 760698a0 (Mar 29): 5 "ok"s in 26 minutes
  • Session 5230bfde (Mar 28 afternoon): 4 "ok"s in 46 minutes
  • Total unique: 40 "ok" interrupts across 2 days

Root Cause 1: SSE stream drops (65 in one week)

main.log shows 65 ERR_HTTP2_PROTOCOL_ERROR SSE stream disconnections in one week (Mar 23–29). On Mar 28, they occurred with exact hourly cadence:

09:25, 10:25, 11:25, 12:25, 13:25, 14:25, 15:25, 16:25, 17:25, 18:25, 19:25

The app reconnects the SSE stream within ~1 second, but if the drop occurs mid-turn (while Claude is executing a tool call), the tool response appears to be lost and the UI freezes with no indication.

Root Cause 2: Preview MCP screenshot timeouts (39 occurrences)

[warn] [Preview MCP] preview_screenshot timed out after 30000ms

39 instances in the current log. On Mar 27 alone, 14 timeouts — including 10 back-to-back between 9:54pm and 10:03pm (potentially 5 minutes of staring at a frozen UI).

No UI feedback during stall

The critical UX issue: when either of these failures occurs mid-turn, the UI shows nothing — no error toast, no "reconnecting" indicator, no retry prompt. The user sees Claude's last text ("Let me read that file...") and then dead silence. It looks identical to the app simply doing nothing.

Expected Behavior

  1. When an SSE stream drops mid-turn, the app should silently retry the tool call or show a "Connection interrupted, retrying..." indicator
  2. When a Preview MCP tool call times out, the turn should continue (with an error message to Claude) rather than silently freezing
  3. At minimum: if no progress occurs for >15 seconds mid-turn, show a visual indicator that something has stalled

Environment

  • Claude Desktop: MSIX 1.1.9493 (Windows Store)
  • Claude Code (embedded CCD): 2.1.87
  • Windows 11 Pro (10.0.26200)
  • 16 GB RAM
  • 12 MCP servers connected

Log file locations (Windows)

  • %APPDATA%\Claude\logs\main.log — SSE stream errors, CCD cycle health, preview timeouts
  • %APPDATA%\Claude\logs\unknown-window.log — UI-side errors (QueryClient, render loops)
  • ~\.claude\transcript-backups\ — JSONL transcripts showing "ok" interrupt pattern

View original on GitHub ↗

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