claude cowork: VM process spins CPU indefinitely on macOS 26.3 (Apple M5)
Resolved 💬 5 comments Opened Feb 16, 2026 by solomon23 Closed Feb 19, 2026
Description
claude cowork fails to start. The underlying com.apple.Virtualization.VirtualMachine process spawns but never reaches a usable state. Instead, it enters a CPU spin loop consuming ~316% CPU (4 vCPU threads) and 1.9GB RAM indefinitely.
Environment
- Claude Code version: 2.1.44
- macOS: 26.3 (Build 25D125)
- Hardware: Apple M5, 32GB RAM
- Virtualization framework: Version 1.0 (259.4.2)
Observed Behavior
- Run
claude cowork - The
com.apple.Virtualization.VirtualMachineXPC service spawns with 4 vCPU threads, 10 disk I/O threads, 2 virtual clock threads - vCPU threads enter a tight
Hv::Vcpu::run()→hv_traploop (hypervisor trap handling + GIC interrupt state sync) - Process consumes ~316% CPU continuously and never completes startup
- No crash reports generated — the VM doesn't crash, it just spin-loops
Process Sample (key threads)
The 4 vCPU threads (com.apple.virtualization.thread.cpu-0 through cpu-3) show:
- ~90% of samples in
Hv::Vcpu::run_once()→hv_trap(hypervisor exit handling) - Remaining samples in GIC interrupt state synchronization (
sync_from_gic_state,compute_list_registers) - Lock contention visible on
os_unfair_lockin GIC list register computation - No threads appear idle or in a healthy wait state
All disk I/O threads and the defrag thread are waiting on condition variables (idle), suggesting the VM guest OS never gets far enough to perform disk I/O.
System State
- System load average during reproduction: 31+ (system under heavy CPU pressure from the VM)
- No related crash reports in
~/Library/Logs/DiagnosticReports/
Expected Behavior
claude cowork should either start successfully or fail gracefully with an error message instead of consuming all available CPU cores indefinitely.
Workaround
Kill the runaway process:
killall "com.apple.Virtualization.VirtualMachine"This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗