[BUG] Cowork sandbox VM bundle not found in Roaming path on Windows 10 Pro (Store/AppX install) — hardlink workaround

Resolved 💬 2 comments Opened May 26, 2026 by AirMonkeys-Kun Closed Jun 27, 2026

Environment

  • OS: Microsoft Windows 10 Pro 10.0.19045 Build 19045
  • Claude Desktop: Store/AppX package version (Claude_pzs8sxrjxfjjc)
  • CPU: 12th Gen Intel Core i5-12400F
  • RAM: 32GB
  • GPU: NVIDIA GeForce RTX 5050
  • WSL: Ubuntu (Running, WSL 2)

Virtualization Feature Status

| Feature | Status |
|---------|--------|
| Microsoft-Hyper-V | Disabled |
| VirtualMachinePlatform | Enabled |
| HypervisorPlatform | Disabled |
| Microsoft-Windows-Subsystem-Linux | Enabled |

Note: WSL 2 works correctly, but full Hyper-V is not enabled.

Bug Description

Claude Desktop Cowork sandbox fails to start with "Virtualization is not available" / "虚拟机不可用" error, even though WSL 2 and Virtual Machine Platform are working correctly.

Root cause: When Claude Desktop is installed as a Windows Store (AppX) package, the VM bundle file (claudevm.bundle) is stored under the per-user AppX package storage (%LOCALAPPDATA%\Packages\Claude_*\LocalCache\Local\Claude-3p\vm_bundles\). However, the sandbox initialization code looks for this bundle in the Roaming path (%APPDATA%\Claude-3p\vm_bundles\), which does not exist by default for Store-installed versions.

# Files exist at:
%LOCALAPPDATA%\Claude-3p\vm_bundles\claudevm.bundle  ✓

# But sandbox looks for:
%APPDATA%\Claude-3p\vm_bundles\claudevm.bundle       ✗ Not found

Workaround: Hardlink Fix

The solution is to create hard links from the Local (package storage) to the Roaming path so the sandbox initialization finds the required files.

Run the following in an Administrator PowerShell:

# 1. Find the Claude package storage
$pkgDir = (Get-ChildItem "$env:LOCALAPPDATA\Packages" -Dir -Filter "Claude_*" | Select-Object -First 1).FullName
$src = "$pkgDir\LocalCache\Local\Claude-3p\vm_bundles\claudevm.bundle"
$dstDir = "$env:APPDATA\Claude-3p\vm_bundles"

# 2. Create destination directory
New-Item -ItemType Directory -Path $dstDir -Force -ErrorAction SilentlyContinue | Out-Null

# 3. Create hard links for each file
Get-ChildItem -Path (Split-Path $src) | ForEach-Object {
    $targetFile = Join-Path $dstDir $_.Name
    if (-not (Test-Path $targetFile)) {
        New-Item -ItemType HardLink -Path $targetFile -Target $_.FullName
    }
}

After running this, restart Claude Desktop. The sandbox should initialize correctly.

Notes

  • This fix is needed when Claude Desktop is installed via the Windows Store (AppX/MSIX packaging), which virtualizes the AppData paths
  • The mklink /J (junction) approach does NOT work — only hard links (or New-Item -ItemType HardLink) work correctly
  • This is different from the Win 11 24H2/25H2 VMP detection bug — this issue affects Win 10 Pro where virtualization features are partially enabled

View original on GitHub ↗

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