System-wide macOS freeze (Dock/launchd crash-loop) + new white-screen crash with Cowork's local VM on low-core Macs
Summary
On a resource-constrained Mac (2 physical cores / 4 logical threads, 16GB RAM), running Claude Desktop with Cowork's local VM (Apple Virtualization Framework) triggers a system-wide macOS freeze: menu bar, Dock, Cmd+Tab and Mission Control all stop responding, sometimes for hours, recoverable only by force-quitting Claude or rebooting. In the most severe episode, the freeze escalated to launchd refusing to spawn any new process (including the Dock itself), which in turn made the Terminal unresponsive — losing shell access entirely.
More recently (after an Aug 13 auto-update to 1.30096.1), a second, milder symptom appeared: the Claude Desktop window itself goes fully white/blank for several seconds, and has crashed outright at least once.
Environment
- MacBook Air, macOS Sonoma 14.8.8 (23J620)
- CPU: 2 physical cores / 4 logical threads (
hw.physicalcpu=2,hw.ncpu=4) - RAM: 16GB
- Claude Desktop version: 1.30096.1 (auto-updated 2026-08-13)
Timeline / trigger correlation
- 2026-08-04: macOS updated to Sonoma 14.8.8. The system-wide freeze started occurring "with frequency" roughly a week after this update — the timing lines up closely.
- 2026-08-13: Claude Desktop auto-updated to 1.30096.1. Within a day, a new/different symptom appeared: the app window goes blank white for several seconds, and crashed once.
We can't prove causation from either update alone, but both are the two most recent system-level changes on this machine and both line up temporally with a change in symptom frequency/character.
Root cause found for the system-wide freeze (confirmed via diagnostics)
uptimeduring/after an episode showed load average of 11–38 on a 2-core machine — 5-19x oversubscription.~/Library/Logs/DiagnosticReports/Dock-*.ipscrash reports showbug_type: 309(launchd watchdog timeout) withsuccessive crashes: 22inlaunchctl print gui/<uid>/com.apple.Dock.agent— the Dock wasn't crashing on its own, it was being killed by launchd's watchdog for failing to respond in time, repeatedly, because the CPU was saturated.- Eventually launchd stopped relaunching Dock at all:
open -a Dockfailed with
````
Error Domain=RBSRequestErrorDomain Code=5 "Launch failed."
...NSPOSIXErrorDomain Code=162 "Unknown error: 162" ... Launchd job spawn failed
which then made the Terminal itself unresponsive (same launchd spawn-refusal mechanism).
- Top CPU consumers during an episode:
Claude Helper (Renderer)(~52%),Claude Helper(~34%),WindowServer(~30%), plus other concurrently running apps — on a 2-core machine this is enough to starve system-critical processes. - Cowork's local Linux VM (
Virtualization.frameworkprocess, confirmed present inps) adds further scheduling contention. This matches a long-standing, still-open Apple Developer Forums thread (developer.apple.com/forums/thread/685573, open since Monterey) describing the same Dock/Mission Control freeze symptom specifically correlated with any local VM being active (VirtualBox in that thread's case), not just Claude/Cowork.
Ruled out:
- Disk space: 114GB free, not a factor.
- Process table exhaustion: 609 processes total vs
kern.maxproc=4176— not exhausted. - RAM: no swap pressure, memory pressure green throughout.
- Scheduled-tasks catch-up bug (previously suspected, see anthropics/claude-code #32125/#32167/#32213): checked
scheduled-tasks.jsondirectly — it's empty (scheduledTasks: []), not the cause here.
Secondary factor: vm_bundles growth
~/Library/Application Support/Claude/vm_bundles grew to ~23GB at one point (matches anthropics/claude-code #32207, #32263), currently sitting around 7.5GB after manual cleanup. Not the root cause of the freeze by itself, but adds disk I/O pressure on an already CPU-starved system and is worth capping/cleaning proactively.
New symptom (since 2026-08-13 update): white screen / crash
Since updating to 1.30096.1, the Claude Desktop window intermittently goes completely white/blank for several seconds, and closed unexpectedly at least once. Observed alongside this: MTLCompilerService (Metal shader compiler) consuming ~48% CPU concurrently with Claude Helper (Renderer) at ~68% CPU — consistent with repeated GPU shader recompilation stalling the renderer's paint, a known Electron/Chromium failure mode under CPU/GPU starvation. No crash report was generated in ~/Library/Logs/DiagnosticReports/ for this (Crashpad completed/pending folders are empty), so this may currently only be visible as a renderer hang rather than a full process crash — but the user did observe one full close.
Steps to reproduce
- Use a Mac with 2 physical cores / 4 threads and 16GB RAM.
- Open Claude Desktop with Cowork active (local VM running).
- Run other CPU-active apps concurrently (in our case: Autodesk Fusion 360, Logitech Options+).
- Load average climbs past ~10 on the 2-core machine; Dock/Mission Control/Cmd+Tab stop responding; can persist for hours.
Impact
- Full desktop environment freeze, not scoped to the Claude Desktop window.
- At least one occurrence where
launchdstopped spawning processes system-wide, requiring a hard reboot. - New: intermittent white-screen/crash in the Claude Desktop window itself since the 1.30096.1 update.
Workaround in use
Installed a local LaunchAgent watchdog (not a fix, just mitigation) that:
- Caps
vm_bundlesat 10GB (measuring real disk usage viadu, not logical file size, since VM disk images are sparse and inflatest_sizesums). - Kills sustained-duplicate
Claude Helper/Claude Helper (Renderer)processes (2+ minutes of duplication, oldest instance only). - On Dock disappearing for 2+ minutes, runs
launchctl kickstart -k gui/<uid>/com.apple.Dock.agent(needed instead ofopen -a Dock, which fails once launchd throttles the job after repeated crashes).
Ask
- Is Cowork's local VM expected to be this CPU-hungry on low-core-count Macs? Is there a lower-resource-usage mode, or a documented minimum core count?
- Any known interaction between Cowork's VM and macOS Dock/Mission Control scheduling, similar to the Apple Forums VM/Mission Control thread linked above?
- Any known renderer/GPU regression in
1.30096.1that could explain the new white-screen symptom?
Happy to provide more diagnostics (Crashpad dumps once one is captured, log show excerpts, sentry queue) if useful.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗