[BUG] Cowork rootfs.vhdx.zst checksum mismatch — CDN serves wrong artifact, different "got" hash from #68313 (Windows 11 Pro, MSIX 1.12603.1.0)

Open 💬 0 comments Opened Jun 25, 2026 by LMC1Unit

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?

<html>
<body>
<!--StartFragment--><h3 class="text-text-100 mt-2 -mb-1 text-base font-bold" data-sourcepos="21:1-21:18;644-661">What's Wrong?</h3>

<p class="font-claude-response-body break-words whitespace-normal" data-sourcepos="23:1-23:256;663-918">Cowork workspace fails to start on Windows 11 Pro. The VM download fails with a persistent checksum mismatch for <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">rootfs.vhdx.zst</code>. The downloaded file's hash is <strong>identical on every attempt</strong>, confirming this is a server-side issue, not local corruption.</p>

<p class="font-claude-response-body break-words whitespace-normal" data-sourcepos="25:1-25:131;920-1050"><strong>This is a separate data point from #68313.</strong> The expected hash is the same (<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">21237ca8...</code>), but the "got" hash is <strong>different</strong>:</p>

<div class="overflow-x-auto w-full px-2 mb-6" data-sourcepos="27:1-30:63;1052-1277">
Reporter | Expected (truncated) | Got (truncated)
-- | -- | --
#68313 (Win11 Home) | 21237ca8... | 01b19a53...
This issue (Win11 Pro) | 21237ca8... | 659a9612...

</div>

<h3 class="text-text-100 mt-2 -mb-1 text-base font-bold" data-sourcepos="48:1-48:37;2327-2363">Key evidence this is server-side</h3>

<ol class="[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3" data-sourcepos="50:1-54:119;2365-3090">
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="50:1-50:165;2365-2529"><strong>Identical "got" hash on every attempt</strong> (<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">659a96127f49ebc504f3ab97a0d5b0455e19a81b7a1d7443b6a44eda30d9da9d</code>). Random corruption would produce different hashes.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="51:1-51:123;2530-2652"><strong>Fresh downloads with no cache</strong> — log shows <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">No warm file found</code> and <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">No cached compressed file</code> before each attempt.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="52:1-52:213;2653-2865"><strong>Built-in "reinstall workspace" does not fix it</strong> — log confirms: <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">Reinstall files deleted (sessiondata.img and compressed cache preserved)</code>. The reinstall button preserves the very files that need replacing.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="53:1-53:106;2866-2971"><strong>Manually deleting <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">vm_bundles</code> does not fix it</strong> — fresh download produces the same mismatched hash.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="54:1-54:119;2972-3090"><strong>Different "got" hash from #68313</strong> — proves the CDN is serving multiple wrong artifacts, not a single stale file.</li>
</ol>

<h3 class="text-text-100 mt-2 -mb-1 text-base font-bold" data-sourcepos="56:1-56:16;3092-3107">Environment</h3>

<ul class="[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3" data-sourcepos="58:1-64:41;3109-3498">
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="58:1-58:25;3109-3133"><strong>OS:</strong> Windows 11 Pro</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="59:1-59:65;3134-3198"><strong>Claude Desktop:</strong> 1.12603.1.0 (MSIX / Windows Store install)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="60:1-60:65;3199-3263"><strong>Bundle version:</strong> <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">6d1538ba6fecc4e5c5583993c4b30bb1875f0f5a</code></li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="61:1-61:89;3264-3352"><strong>Install path:</strong> <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">C:\Program Files\WindowsApps\Claude_1.12603.1.0_x64__pzs8sxrjxfjjc</code></li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="62:1-62:89;3353-3441"><strong>VM bundle path:</strong> <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">C:\Users\drlia\AppData\Roaming\Claude\vm_bundles\claudevm.bundle</code></li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="63:1-63:16;3442-3457"><strong>Plan:</strong> Max</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2" data-sourcepos="64:1-64:41;3458-3498"><strong>Hyper-V:</strong> Enabled, services running</li></ul><!--EndFragment-->
</body>
</html>

What Should Happen?

rootfs.vhdx.zst should download with a valid checksum and the workspace should start — as it did successfully pre 2026-06-19.

Error Messages/Logs

2026-06-15 07:26:51 [info] [VM:start] Beginning startup, bundlePath=C:\Users\drlia\AppData\Roaming\Claude\vm_bundles\claudevm.bundle
2026-06-15 07:26:51 [info] [VM:start] Bundle version: 6d1538ba6fecc4e5c5583993c4b30bb1875f0f5a
2026-06-15 07:26:51 [info] [warm] No warm file found for rootfs.vhdx at current version
2026-06-15 07:26:51 [info] [cache] No cached compressed file for rootfs.vhdx
2026-06-15 07:26:51 [warn] rootfs.vhdx origin missing, redownloading...
2026-06-15 07:26:51 [info] Downloading rootfs.vhdx...
2026-06-15 07:27:17 [error] [VM:start] Startup failed: Error: Checksum mismatch for rootfs.vhdx.zst: expected 21237ca86d15885ed7dcbe1c66b8b3a464c914648b16300070b12b1e1212e451, got 659a96127f49ebc504f3ab97a0d5b0455e19a81b7a1d7443b6a44eda30d9da9d
    at aVr (C:\Program Files\WindowsApps\Claude_1.12603.1.0_x64__pzs8sxrjxfjjc\app\resources\app.asar\.vite\build\index.js:536:14421)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async Promise.all (index 0)
    at async fVr (C:\Program Files\WindowsApps\Claude_1.12603.1.0_x64__pzs8sxrjxfjjc\app\resources\app.asar\.vite\build\index.js:539:1836)

2026-06-15 07:27:17 [error] Checksum mismatch: expected 21237ca8..., got 659a9612...
2026-06-15 07:44:37 [error] Checksum mismatch: expected 21237ca8..., got 659a9612...
2026-06-15 07:50:46 [error] Checksum mismatch: expected 21237ca8..., got 659a9612...
2026-06-15 09:22:45 [error] Checksum mismatch: expected 21237ca8..., got 659a9612...
2026-06-15 09:25:13 [error] Checksum mismatch: expected 21237ca8..., got 659a9612...
2026-06-15 09:25:39 [error] Checksum mismatch: expected 21237ca8..., got 659a9612...
2026-06-15 09:25:59 [error] Checksum mismatch: expected 21237ca8..., got 659a9612...
2026-06-15 09:26:17 [error] Checksum mismatch: expected 21237ca8..., got 659a9612...
2026-06-15 09:29:04 [error] Checksum mismatch: expected 21237ca8..., got 659a9612...
2026-06-15 09:29:16 [error] Checksum mismatch: expected 21237ca8..., got 659a9612...

Steps to Reproduce

  1. Install Claude Desktop 1.12603.1.0 (MSIX) on Windows 11 Pro.
  2. Open Cowork mode.
  3. Workspace attempts to download rootfs.vhdx.zst — fails with checksum mismatch.
  4. Delete vm_bundles directory entirely. Reopen Claude. Same mismatch on fresh download.
  5. Use built-in "reinstall workspace" button. Same mismatch (button preserves corrupted files).

Claude Model

Not sure / Multiple models

Is this a regression?

Yes, this worked in a previous version

Last Working Version

Worked on 2026-03-26 with bundle version fb30784dadb34104626c8cf6d8f90dd47cd393cc. Broken as of 2026-06-15 with bundle version 6d1538ba6fecc4e5c5583993c4b30bb1875f0f5a

Claude Code Version

N/A — Claude Desktop Cowork, not Claude Code CLI

Platform

Other

Operating System

Windows

Terminal/Shell

Non-interactive/CI environment

Additional Information

Regular Chat mode works perfectly — only Cowork is affected.
This corroborates #68313 but with a different "got" hash, proving the CDN is serving multiple mismatched artifacts.
Also related: #68514 (same issue on macOS with rootfs.img.zst), #37925 (Linux checksum mismatch).
Anthropic support has been contacted but has not responded.

View original on GitHub ↗