[BUG] Cowork VM download infinite loop on Linux — checksum mismatch between compressed and uncompressed hashes

Resolved 💬 2 comments Opened Mar 23, 2026 by Duxon Closed Apr 21, 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?

What's Wrong?

On Linux (Fedora 42, claude-desktop 1.1.7714), Cowork gets stuck in an infinite download loop during VM initialization. The download reaches 99%+, then silently restarts from 0% — indefinitely.

Root cause: The app.asar manifest contains checksums for the uncompressed VM files (e.g., rootfs.vhdx), but the downloader appears to validate against the compressed .zst archive hash. Since these never match, the app deletes the downloaded file and retries.

Evidence from logs

[download:25] 99.3% (2203.3/2219.1 MB) avg 2.20 MB/s, ETA 7s
[download:26] Starting download from https://downloads.claude.ai/vms/linux/x64/.../rootfs.vhdx.zst

The download completes, but the checksum check fails:

[cache] Checksum mismatch for rootfs.vhdx:
  expected a829fe446f24d5e49dcca7f4c61042cf79bc53197d06c582f3fac69282131410,
  got 1d49e23b4cce8865412c201afa396df6112adb008b1476ec639df19b23c46be4

Manifest analysis

From the minified app.asar, the linux.x64 manifest expects:

  • rootfs.vhdx: a829fe44... (this is the hash of the uncompressed VHDX)
  • - vmlinuz: 9ab0e403...
  • - - initrd: 03221429...

The actually downloaded compressed rootfs.vhdx.zst has hash 1d49e23b... — which matches the win32.x64 entry in the same manifest. This confirms the mismatch is between compressed vs. uncompressed hashes, not corrupted data.

The same loop affects all three bundle files (rootfs.vhdx, vmlinuz, initrd).

What Should Happen?

The checksum validation should compare the hash of the uncompressed file after extraction, not the compressed .zst archive. Alternatively, the manifest should contain both compressed and uncompressed checksums.

Workaround

Manually download and decompress the VM files, bypassing the app's downloader entirely:

cd ~/.config/Claude/vm_bundles/claudevm.bundle
rm -rf wvm-*

# Download and extract each file
for f in rootfs.vhdx vmlinuz initrd; do
  wget -q --show-progress "https://downloads.claude.ai/vms/linux/x64/fb30784dadb34104626c8cf6d8f90dd47cd393cc/${f}.zst"
  zstd -d -f --rm "${f}.zst"
done

After this, restart Claude Desktop and Cowork boots immediately.

Environment

  • OS: Fedora 42 (Linux 6.x, x86_64)
  • - Claude Desktop: 1.1.7714 (RPM)
  • - - Bundle version: fb30784dadb34104626c8cf6d8f90dd47cd393cc

Related issues

  • #37699 — no resume mechanism for the ~10GB download (compounds this issue)
  • - #37312 — similar signature verification failure on Windows

What Should Happen?

The Cowork VM should download and initialize successfully. The checksum validation should compare the hash of the uncompressed file after extraction, not the compressed .zst archive.

Error Messages/Logs

[cache] Checksum mismatch for rootfs.vhdx: expected a829fe446f24d5e49dcca7f4c61042cf79bc53197d06c582f3fac69282131410, got 1d49e23b4cce8865412c201afa396df6112adb008b1476ec639df19b23c46be4
[download:25] 99.3% (2203.3/2219.1 MB) avg 2.20 MB/s, ETA 7s
[download:26] Starting download from https://downloads.claude.ai/vms/linux/x64/.../rootfs.vhdx.zst

Steps to Reproduce

  1. Install Claude Desktop on Linux (Fedora 42, RPM package v1.1.7714)
  2. 2. Open Claude Desktop and click "Get started" to initialize Cowork
  3. 3. Observe the "Setting up Claude's workspace" progress bar
  4. 4. The download reaches ~99%, then silently restarts from 0%
  5. 5. This loop repeats indefinitely — the VM never successfully initializes

The root cause is visible in ~/.config/Claude/Logs/main.log:

  • The download completes, but the checksum of the compressed .zst file is compared against the expected hash of the uncompressed file
  • - Since these never match, the app deletes the download and retries

Claude Model

None

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

1.1.7714 (Claude Desktop RPM, Fedora 42)

Platform

Anthropic API

Operating System

Other Linux

Terminal/Shell

Other

Additional Information

_No response_

View original on GitHub ↗

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