[Desktop][macOS 26] Code tab crashes — rootfs.img redownload loop saturates disk writes

Resolved 💬 1 comment Opened Apr 22, 2026 by afrontar73 Closed May 31, 2026

Claude Desktop — Code tab crashes on macOS 26 due to rootfs.img redownload loop

Summary

Opening the Code tab in Claude Desktop causes the app to be terminated by macOS within ~6 minutes due to exceeding the system disk-writes resource limit. Reproducible whenever any MCP connector is enabled. Disabling all connectors prevents the crash.

Environment

  • Claude Desktop: 1.3883.0
  • macOS: 26.5 beta, build 25F5053d (developer seed)
  • Hardware: MacBook Air M-series, Mac16,13, 16 GB RAM, arm64
  • Locale: es-ES

Symptom

App process killed by macOS (jetsam / disk-writes limit). User-facing: the Claude app window disappears seconds to minutes after opening the Code tab. Repeats every time the tab is opened while any connector is enabled.

Evidence — crash reports

6 terminations logged between 2026-04-14 and 2026-04-22. Representative incident:

  • Path: /Library/Logs/DiagnosticReports/Claude_2026-04-22-114157_*.diag
  • Incident ID: A949AA11-08EC-4E7E-9ABF-16EF0AABCDEE
  • Event: disk writes
  • Writes: 8589.95 MB of file backed memory dirtied over 394 seconds (21.81 MB/s average), exceeding limit of 99.42 KB/s over 86400s
  • Writes limit: 8589.93 MB → process terminated the moment the limit is hit
  • Heaviest stack:

``
thread_start → _pthread_start → uv_cancel → write (libsystem_kernel)
``
libuv synchronous write loop inside Electron Framework.

Root cause — infinite rootfs.img re-download loop

File: ~/Library/Logs/Claude/cowork_vm_node.log. Every ~9 seconds, indefinitely:

[info] [Bundle:status] rootfs.img missing
[info] [warm] No warm file found for rootfs.img at current version
[info] [cache] No cached compressed file for rootfs.img
[info] rootfs.img not found, downloading...
[info] Downloading rootfs.img...
[info] [VM] Loading @ant/claude-swift module...
[info] [VM] Module loaded successfully
[info] [Bundle:status] rootfs.img missing   ← file marked missing again
[info] Downloading rootfs.img...            ← restarts download
...

Something post-download invalidates rootfs.img (likely hash/version check), so the VM layer re-downloads it forever. Each pass writes the full image to disk, saturating the per-process write quota and triggering termination.

Side effect: ~/Library/Application Support/Claude/vm_bundles/claudevm.bundle/ grew to 8.8 GB of partial/duplicate fragments.

Trigger / workaround

  • With any MCP connector enabled → crash within minutes of opening Code tab.
  • With all connectors disabled → app stays stable, Code tab works.

Pattern suggests connector init inside the VM races with / invalidates the rootfs.img integrity check.

Suggested investigation paths

  1. Why is rootfs.img re-marked missing after a successful download? Inspect the hash/version validator in cowork_vm_node.
  2. Why does enabling a connector re-trigger the validator? Is the connector writing inside the bundle directory?
  3. Add a download-attempt counter with backoff + user-visible error instead of infinite retry that silently exhausts the jetsam budget.
  4. Validate on macOS 26 beta — Virtualization.framework behavior changed in this cycle.

Reproduction

  1. macOS 26.5 beta + Claude Desktop 1.3883.0.
  2. Enable at least one MCP connector.
  3. Open the Code tab.
  4. Within ~6 min the app is killed by the OS with "disk writes exceeded".
  5. Disable all connectors → issue gone.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗