[BUG] Claude Code (Windows desktop app v2.1.119) hangs indefinitely on prompt submission — infinite spinner, no streaming output

Resolved 💬 3 comments Opened Apr 28, 2026 by Second-Summit-marketing Closed May 2, 2026

Summary

Claude Code running inside the Windows Claude desktop app hangs forever after the user submits a prompt. The session spinner runs indefinitely (verified 2+ minutes, user reports it sits "forever"), no tokens stream back, no errors surface in the UI, and the only recovery is force-killing the claude.exe subprocess.

Environment

  • OS: Windows 11
  • Claude desktop app: 1.4758.0.0
  • Claude Code subprocess: 2.1.119 (%APPDATA%\Claude\claude-code\2.1.119\claude.exe)
  • Mode: Cowork / agent mode (subprocess spawned by Claude desktop with --output-format stream-json --input-format stream-json)

Symptoms

  • User submits first prompt in a fresh Cowork session.
  • Spinner shows elapsed time ticking (e.g. 2m 9s) but no output ever appears.
  • The claude.exe child process is still alive, parented to the desktop app, but cumulative CPU is very low (~3–5 seconds total) — suggests it's blocked on I/O, not thinking/working.
  • Other concurrent Cowork sessions in the same desktop app continue working normally, so it isn't a global lockup.
  • Force-killing the specific stuck PID frees the UI; user can then start a new session normally.

Process snapshot at time of hang

Four claude.exe v2.1.119 children of the desktop app PID, all spawned with stream-json IO. The hung one was launched with:

claude.exe --output-format stream-json --verbose --input-format stream-json \
  --effort max --model claude-opus-4-7[1m] --permission-prompt-tool stdio \
  --allowedTools mcp__computer-use,mcp__ccd_session__spawn_task,mcp__ccd_session__mark_chapter \
  --setting-sources=user,project,local --permission-mode bypassPermissions \
  --allow-dangerously-skip-permissions --include-partial-messages \
  --plugin-dir <...> --replay-user-messages --settings {}

Not using --resume, so it was a fresh session attempt.

Reproduction

Not yet reliably reproducible — appears intermittent. Suspect either:

  1. A wedged stream-json handshake between the desktop app and the Claude Code child (no first stream message ever sent, child waiting for stdin).
  2. A plugin/MCP startup step that never returns (lots of plugin dirs are loaded; one slow MCP server could block tool init).
  3. Network call to the API that is silently retrying without backing out.

Suggestions for the team

  • Add a startup-phase timeout/heartbeat — if no model token or tool event has streamed within N seconds of prompt submission, log a clear diagnostic to the user instead of an indefinite spinner.
  • Surface MCP/plugin init progress in the desktop UI so users can see if a plugin is the cause of the hang.
  • Consider a "this session looks stuck — restart it?" UI affordance after, say, 60s of zero output, to avoid users having to open Task Manager and find the right PID.

Workaround

Force-kill the specific hung claude.exe v2.1.119 PID under the desktop app parent, then start a new session. Killing only the stuck child doesn't disturb other open Cowork sessions.

Reporter: Dan (dan@secondsummit.ninja) — happy to attach desktop app logs, MCP server logs, or a process dump if helpful.

View original on GitHub ↗

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