[BUG] Cowork VM boot IPC hangs silently — VMCLIRunner blocks UI indefinitely (Win11 25H2, all prerequisites met)
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?
Cowork VM boot IPC hangs silently on Windows 11 25H2 — [VMCLIRunner] Ensuring VM is started blocks the UI thread indefinitely. The app window renders but is completely frozen ("Not Responding" in Task Manager). No error is ever produced.
Environment:
Claude Desktop v1.1.5368.0 (MSIX from Microsoft Store)
Windows 11 25H2 (Build 26200)
AMD Ryzen 7 260 w/ Radeon 780M, 32GB RAM
VirtualMachinePlatform: Enabled
HypervisorPlatform: Enabled
vmcompute service: Running
CoworkVMService: Running (correct path: C:\Program Files\WindowsApps\Claude_1.1.5368.0_x64__pzs8sxrjxfjjc\app\resources\cowork-svc.exe)
Key findings from extensive debugging:
The automatic VM bundle download never triggers. When claudevm.bundle/ is empty, the app logs [Bundle:status] rootfs.vhdx missing repeatedly but never initiates a download. No error, no download attempt — it just loops on the missing status check. This appears related to #29657 and #30584 but is distinct: no EXDEV error occurs because the download is never attempted.
Manually populating the bundle does not fix the hang. After manually downloading and placing all bundle files (rootfs.vhdx 9.2GB, vmlinuz, initrd, smol-bin.vhdx, sessiondata.vhdx via diskpart, and .origin files with correct SHA fb30784dadb34104626c8cf6d8f90dd47cd393cc), the bundle check passes — but the VM still never boots.
The VM boot IPC call to CoworkVMService hangs silently. cowork_vm_node.log only ever shows:
[VM] Loading vmClient (TypeScript) module...
[VM] Module loaded successfully
No boot attempt, no [VM:start], no [VM:steps], no error. cowork-service.log remains completely empty on every launch — the service never receives a connection. No vmwp process ever spawns.
The Claude Code download also hangs the UI. The app tries to download claude.exe.zst synchronously on the UI thread, which blocks rendering. Even after manually pre-installing both claude-code/2.1.63/claude.exe (win32) and claude-code-vm/2.1.63/claude (linux), the VM boot still does not trigger.
What Should Happen?
The VM bundle download should initiate automatically when rootfs.vhdx is missing, with proper error logging if it fails.
The VMCLIRunner should have a timeout so it doesn't block the UI thread indefinitely.
The Cowork VM should boot successfully when all prerequisites are met and the bundle is populated.
If the VM cannot boot, the app should fall back gracefully and render the Chat tab.
Error Messages/Logs
main.log — app hangs here every launch:
2026-03-08 12:40:50 [info] [RemotePluginManager] Starting remote plugins sync
2026-03-08 12:40:50 [info] [VMCLIRunner] Ensuring VM is started
2026-03-08 12:40:50 [info] MCP Server connection requested for: mcp-registry
cowork_vm_node.log — this is the entire log contents on every launch:
2026-03-08 12:40:50 [info] [VM] Loading vmClient (TypeScript) module...
2026-03-08 12:40:50 [info] [VM] Module loaded successfully
cowork-service.log — completely empty on every launch since March 8. Last entries are from March 5 (version 1.1.4498), suggesting the service never receives connections from the current app version.
Bundle contents (manually populated):
initrd 175,549,736
rootfs.vhdx 9,252,634,624
sessiondata.vhdx 4,194,304
smol-bin.vhdx 37,748,736
vmlinuz 14,965,128
.initrd.origin 40
.rootfs.vhdx.origin 40
.vmlinuz.origin 40
Steps to Reproduce
Install Claude Desktop v1.1.5368 (MSIX) on Windows 11 25H2 Build 26200
Enable VirtualMachinePlatform and HypervisorPlatform
Verify vmcompute and CoworkVMService are running
Launch Claude Desktop
Observe: UI renders but immediately freezes ("Not Responding")
Check logs: main.log stops at [VMCLIRunner] Ensuring VM is started
Check cowork_vm_node.log: only shows module loaded, no boot attempt
Check cowork-service.log: empty — service never receives a connection
Reproduced 100% consistently across: full uninstall/reinstall, clearing all AppData, deleting and repopulating vm_bundles, restarting all services, rebooting, and enabling additional Windows features.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
1.1.4498
Claude Code Version
2.1.63 (manually installed — automatic download hangs)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
Related issues: #29657 (empty bundle), #30584 (EXDEV), #25911 (EXDEV + EFS). This issue is distinct — the download never initiates (no EXDEV), and even with a manually populated bundle, the VM boot IPC never reaches the service.
Hypothesis: The vmClient TypeScript module loads successfully but the IPC connection to CoworkVMService fails silently — possibly a named pipe path mismatch, a version handshake failure between the 1.1.5368 app and the service, or a missing prerequisite that the module checks synchronously before attempting the boot call. The fact that cowork-service.log has zero entries since the upgrade to 1.1.5368 strongly suggests the app never establishes a connection to the service.
Timeline of debugging performed:
Renamed claude_desktop_config.json (MCP config) — no change
Cleared cache — no change
Full uninstall + reinstall — no change
Enabled VirtualMachinePlatform — no change
Rebooted — no change
Enabled HypervisorPlatform + reboot — vmcompute now starts, but VM still doesn't boot
Deleted vm_bundles — app reports rootfs.vhdx missing but never downloads
Manually downloaded rootfs.vhdx.zst (2.3GB), vmlinuz.zst, initrd.zst from https://downloads.claude.ai/vms/linux/x64/fb30784dadb.../ and decompressed with zstd
Copied smol-bin.vhdx from app resources
Created sessiondata.vhdx via diskpart
Created .origin marker files
Manually installed claude-code (win32) and claude-code-vm (linux) binaries
Bundle check now passes but VM boot never triggers
This issue has 7 comments on GitHub. Read the full discussion on GitHub ↗