[BUG] Claude Desktop permanently unresponsive (100% CPU) when scheduled tasks fire against missing/crashed Cowork VM
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Claude Desktop becomes permanently unresponsive (spinning beach ball, 100% CPU on main process) when Cowork scheduled tasks attempt to execute but the Cowork VM is unavailable — either because it crashed or its bundle was cleared during troubleshooting.
The scheduled task retry loop appears to have no timeout or maximum retry count, causing the main Electron process to spin indefinitely. The app cannot be interacted with at all — no UI elements are reachable.
Critically, reinstalling the app does not fix this, because the scheduled task flags persist in claude_desktop_config.json and the tasks fire immediately on launch before the VM has rebuilt, re-entering the infinite loop.
What Should Happen?
Scheduled tasks should gracefully skip or queue when the VM is unavailable, not spin-wait on the main thread
The retry loop needs a maximum retry count or timeout ceiling
A missing VM should not make the entire UI permanently unresponsive
At minimum, the app should surface an error message rather than silently hanging
Error Messages/Logs
main.log shows normal startup completing at 12:08:00 — scheduled tasks initialize, 127 persisted sessions load, OAuth resolves — then the log simply stops. No errors, no crash, no further output. The app is silently spinning.
ps aux confirms the main Claude process at 100% CPU with no signs of progress:
mattbeane 48732 100.0 0.5 1892142192 302192 ?? R 12:07PM 2:15.86 /Applications/Claude.app/Contents/MacOS/Claude
Steps to Reproduce
Set up several Cowork scheduled tasks via /schedule
Wait for the Cowork VM to crash or become unavailable (this can happen spontaneously — see #26087, #26646)
Observe the app is stuck on the spinning beach ball
Force quit and relaunch → same result
Delete and reinstall Claude Desktop → same result
Delete ~/Library/Application Support/Claude/vm_bundles/, Cache/, Code Cache/ → same result (tasks still try to fire against missing VM)
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.71 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Workaround
The only fix is to manually edit claude_desktop_config.json while the app is not running:
bashkillall -9 Claude
killall -9 "Claude Helper"
Then edit ~/Library/Application Support/Claude/claude_desktop_config.json and set:
json"coworkScheduledTasksEnabled": false,
"ccdScheduledTasksEnabled": false
Relaunch. The app starts normally. The VM can then rebuild, and scheduled tasks can be re-enabled once the VM is healthy.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗