[BUG] Claude Desktop permanently unresponsive (100% CPU) when scheduled tasks fire against missing/crashed Cowork VM

Resolved 💬 3 comments Opened Mar 8, 2026 by mattbeane Closed Mar 11, 2026

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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗