claude cowork: VM process spins CPU indefinitely on macOS 26.3 (Apple M5)
Status Fixed / completed
Reported on v2.1.44
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 5 comments · opened Feb 16, 2026 · 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"
5 Comments
Root Cause Found
The coworkd log reveals the actual cause — a Linux kernel panic inside the VM guest:
The panic occurs at ~40s after boot in the
jbd2/nvme0n1p1-journaling thread (ext4 filesystem on the rootfs). The stack corruption (corrupted stack end detected inside scheduler) suggests either:After the kernel panic, the Virtualization.framework vCPU threads continue spinning (the guest enters an infinite halt/panic loop), causing the sustained 300%+ CPU usage until the host eventually reports
VZErrorDomain Code=1 "The virtual machine stopped unexpectedly".Key issue: There's no timeout or watchdog on the host side to detect a panicked guest and kill the VM, so it consumes CPU indefinitely.
The VM bundle is at version 2.1.41 (SDK) but Claude Code is at 2.1.44, which may indicate a version mismatch.
Logs:
~/Library/Logs/Claude/cowork_vm_swift.log~/Library/Logs/Claude/coworkd.logFound 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Workaround that resolved the issue
``
``kill <pid> # or: killall com.apple.Virtualization.VirtualMachine
``
``rm -rf ~/Library/Application\ Support/Claude/claude-code-vm/
claude cowork— it re-downloads/recreates a fresh VM bundle and boots successfully.The issue was likely a corrupted VM image from a prior session. Clearing the cached VM state and letting it rebuild from scratch resolved it.
We believe this kernel panic has been fixed in the latest version of Cowork
v1.1.3541. If you still run into this after updating please ping me belowThis issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.