Claude Desktop (macOS): renderer EventEmitter leak (AutoUpdater/AppPreferences listeners) -> grey screen, dozens of restarts/day
Claude Desktop (macOS): renderer EventEmitter leak → grey screen, 20–30 forced restarts/day
Environment
- Claude Desktop 1.22209.3 (updater confirms it is the latest as of 2026-07-20), bundled claude-code 2.1.215
- macOS 26.5.2 (25F84), Darwin 25.5.0, MacBook Pro M5 Max, 64 GB RAM (system RAM never exhausted — 93% free while the renderer hangs)
- Workload: 2–5 concurrent local agent-mode sessions in one Desktop window set
Symptoms
- UI greys out and stops responding; only an app restart recovers it. Honest baseline: 20–30 restarts/day.
- After a clean app start the single shared renderer (
Claude Helper (Renderer)) grows to 646–904 MB RSS within 12–56 minutes (kernel-recorded phys_footprint peak 792.9 MB) with 5 concurrent sessions.
Evidence from logs (no conversation content)
claude.ai-web.log: 356 ×MaxListenersExceededWarning— every window load immediately adds 11 listeners for
AutoUpdater_updaterState_$store$_update and AppPreferences_preferencesChanged. The pair fires within the first second of every reload, so leaked listeners accumulate across the very restarts the leak causes (restart clusters observed at 09:25, 09:28, 11:02, 11:09, 12:28, 14:07 on 2026-07-20).
claude.ai-web.log: 208 ×TypeError: Failed to fetch(React Query, assets-proxy.anthropic.com) — bursts correlate with the grey-screen episodes; suspected consequence of the wedged renderer rather than network (LAN stable).main.log[process-memory]: tree_rss_sum ~2.9 GB; top consumer is always the singleelectron_renderer(660–850 MB), each local session child adds 400–500 MB.- Diagnostics captured at a live peak (vmmap --summary, footprint, ps snapshots, process-memory history — memory statistics only): available on request.
Reproduction profile
Open 4–5 local agent-mode sessions across different projects in Claude Desktop → renderer passes 900 MB within ~12 minutes of a fresh start → UI greys.
Trigger for this report
This issue was auto-filed by a local watchdog after the restart threshold was exceeded (>5 window reloads in 12h) after all local mitigations were applied: repo index reduced from 89,339 to 547 tracked files (file-index-worker no longer falls back to shallow BFS), MCP plugin duplicates disabled, concurrent sessions reduced, transcripts >20 MB archived. Live counter for the trigger window is appended below.
---
Live trigger data: 6 window reloads in the last 12h (threshold >5), measured 2026-07-20 20:18 local time.
Recent reload minutes:
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗