Desktop app: main webview hangs (~daily), watchdog kill takes 30–60 min

Resolved 💬 3 comments Opened Apr 28, 2026 by darylmcd Closed May 2, 2026

Version: Claude Code Desktop 2.1.119 (auto-update channel: latest)
Platform: Windows 11 Pro 26200, Electron app at %APPDATA%\Claude\claude-code\2.1.119
Frequency: 5 hangs in 5 days (4/24, 4/25 x2, 4/27, 4/28)
Today's Sentry event ID: c9ea80aeeccb4eefa6cd5f2a2dc1de2a

Symptom

  • Chat UI goes completely blank/frozen
  • Background CCD agent sessions continue to run normally (visible in main.log: [CCD] Session ... workflow ... ended lines keep streaming the whole time the UI is dead)
  • OS reports the windows as Responding=True, so the hang is internal to the renderer JS, not the Electron message loop
  • No Crashpad minidump — pure JS hang, no native crash

Watchdog behavior

main.log eventually emits:

[info] Main webview is unresponsive, will kill and reload
[error] Sentry caught: Main webview became unresponsive

…but only after ~48 minutes of dead UI in today's instance. The watchdog timeout / kill threshold appears far too lax for what is effectively a soft-lockup the user must wait through.

Likely trigger (today)

Last renderer log entries before going silent (claude.ai-web.log):

13:45:20 [error] REACT_QUERY_CLIENT 503 overloaded_error /api/bootstrap/{org}/system_prompts
13:45:21 [error] REACT_QUERY_CLIENT 503 overloaded_error /api/bootstrap/{org}/current_user_access
13:46:25 [error] REACT_QUERY_CLIENT 504 /v1/sessions  -- error.message contains the FULL Cloudflare 504 HTML page (~5KB) including footer scripts
13:46:45 [error] REACT_QUERY_CLIENT 504 /v1/sessions branch-statuses
13:49:18 [error] REACT_QUERY_CLIENT 504 branch-statuses   <-- last log line from renderer

Renderer then went silent for ~48 min until the watchdog killed it.

Hypothesis: when upstream returns a 504 Cloudflare HTML page, React Query swallows the whole document into the error object; if that propagates into render or a retry loop with a heavy serializer, the renderer wedges. Other hangs (4/24, 4/27) show similar patterns of API-error spam immediately preceding the silence.

Repro: not deterministic from user side; correlates with periods of API 5xx on /v1/sessions and /api/bootstrap.

Asks

  1. Reduce the unresponsive-watchdog kill threshold (or expose a setting).
  2. Truncate Cloudflare/HTML error bodies in REACT_QUERY_CLIENT before they hit the error-handling path.
  3. Add a circuit breaker on bootstrap/session 5xx storms instead of unbounded retries.

View original on GitHub ↗

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