[BUG] macOS Desktop App "Coworkd" VM Infinite Loop silently drains Pro Quota via orphaned subagents
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?
Bug Description
There is a severe bug in the Claude macOS Desktop App involving the "Local Agent Mode" (Cowork feature). A background daemon (coworkd) running inside a hidden Linux VM goes into an infinite loop, spawning orphaned headless instances of claude that completely drain the user's Pro usage quota in seconds (jumping from 6% to 100%), even when the app, IDEs, and Terminals are completely closed.
Environment
- OS: macOS 26.4
- Application: Claude Desktop App (macOS) /
coworkd/claude-code - Date of incident: April 22, 2026
- Impact: Total loss of paid Pro quota limits without user interaction.
Evidence from Local Logs
Upon inspecting the local macOS logs (~/Library/Application Support/Claude/logs), I discovered the exact mechanism of the quota drain:
- VM Initialization: The macOS app silently spins up a Linux VM in the background via
vzgvisor(seen invzgvisor.logandcowork_vm_swift.log). - Orphaned Agents: Inside the VM, a
coworkddaemon is running. It spawned headless subagents with generated user names (e.g.,lucid-exciting-dirac,epic-intelligent-keller). This is visible incoworkd.log. - The Infinite Loop: My
main.logis flooded with thousands of consecutive errors:
[warn] [LOCAL_SESSION] Subagent parent not found for user message - possible out of order processing
- The Drain: These background instances are being executed with the following parameters, consuming massive context instantly:
--model claude-sonnet-4-6 --max-thinking-tokens 31999
What Should Happen?
- Background syncs or "Local Agent" daemons should never consume user subscription quotas without explicit foreground execution.
- If a subagent loses its parent process (
Subagent parent not found), it should gracefully exit, not enter an infinite loop of max-token API calls.
Error Messages/Logs
Steps to Reproduce
- The user does not need to do anything. The terminal, VS Code, and active Claude Desktop windows were entirely CLOSED for days.
- The background
claudevm.bundleprocess executes the subagents on its own. - The Pro quota immediately spikes to 100%.
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
Claude 1.3883.0 (93ff6c) 2026-04-21T17:24:01.000Z
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗