[BUG][Desktop][macOS 26] Code tab kills entire app — rootfs.img redownload loop (disk-write jetsam); crashes even with all connectors disabled
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?
Clicking the Code tab in Claude Desktop terminates the ENTIRE app within seconds (the whole window vanishes), every single time. No .ips crash report is produced — macOS kills the process on a disk-write resource limit (jetsam).
Root cause, visible in ~/Library/Logs/Claude/cowork_vm_node.log, is an infinite rootfs.img re-validation/re-decompression loop: the image is marked 'missing' immediately after a successful, checksum-validated decompression, so the ~10 GB image is rewritten over and over until the per-process disk-write quota is exhausted and the OS kills the app.
This is the same defect as the auto-closed #51913, BUT on my machine it crashes even with ALL MCP connectors disabled and after a full relaunch — so the 'disable all connectors' workaround from #51913 does NOT apply here. There is no working user-side workaround on this configuration.
What Should Happen?
Opening the Code tab should start the Code/Cowork session without the app being killed. A freshly decompressed, checksum-validated rootfs.img should NOT be immediately re-marked 'missing', and any download/decompress retry should be bounded (attempt counter + backoff + a user-visible error) so it can never exhaust the macOS per-process disk-write (jetsam) budget.
Error Messages/Logs
~/Library/Logs/Claude/cowork_vm_node.log (repeats indefinitely, ~every 9-18s):
[Bundle:status] rootfs.img missing
[warm] No warm file found for rootfs.img at current version
[cache] Decompressing rootfs.img from cached .../vm_bundles/claudevm.bundle/rootfs.img.zst
[Bundle:status] rootfs.img missing <- re-marked missing right after
[cache] Decompressing rootfs.img ... <- restarts
main.log: 'Utility' process exited with 'killed' (repeated)
macOS jetsam termination (per #51913, same signature): 'disk writes' — ~8.6 GB of file-backed memory dirtied over ~394s (21.8 MB/s), exceeding limit of 99.42 KB/s; process terminated at the limit. Heaviest stack: thread_start -> _pthread_start -> uv_cancel -> write (libsystem_kernel) — libuv synchronous write loop inside Electron Framework.
Bundle state: ~/Library/Application Support/Claude/vm_bundles/claudevm.bundle/ has a 10 GB rootfs.img (rewritten each attempt) alongside the 2 GB source rootfs.img.zst.
Steps to Reproduce
- macOS 26.5 (build 25F71), Apple Silicon; Claude Desktop 1.9659.4.
- 2. Click the </> Code tab in the desktop app.
- 3. Within seconds to a few minutes the ENTIRE app window disappears (process killed by macOS; no .ips report generated).
- 4. Reopen the app and repeat — happens every time.
Already tried, no effect: cleared ~/Library/Caches/Claude and the app Cache folder; cleared GPUCache / DawnGraphiteCache / DawnWebGPUCache / Code Cache; clean reinstall of the app; reset vm_bundles/claudevm.bundle/rootfs.img + sessiondata.img + efivars.fd (it re-decompressed from the local .zst and checksum-validated OK); disabled ALL MCP connectors and fully relaunched. Crash persists in every case, INCLUDING with all connectors disabled.
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
Claude Desktop 1.9659.4 (bundled claude-code SDK 2.1.160) — macOS 26.5 build 25F71, Apple Silicon arm64
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Note: this concerns the Claude DESKTOP app's built-in Code tab (Cowork/Code VM), not the standalone claude CLI in a terminal — this form is CLI-oriented, so the Platform and Terminal/Shell fields above are approximate. All diagnostics were gathered from the app's own logs in ~/Library/Logs/Claude/ and the bundle under ~/Library/Application Support/Claude/vm_bundles/.
Canonical earlier report describing the same root cause: #51913 (auto-closed as stale by a bot for inactivity, NOT fixed). Related disk-write/jetsam reports: #53704, #55242, #58285, #58626, #60034.
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗