[BUG] Cowork VM cannot read SDK binary - MSIX Application Protected encryption blocks virtiofs access

Resolved 💬 3 comments Opened Mar 22, 2026 by saman-ops Closed Mar 26, 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?

Cowork workspace fails to start with input/output error when the VM tries to read the SDK binary via virtiofs. The root cause is that Windows MSIX packaging automatically applies Application Protected encryption to files in the Store app's LocalCache\Roaming path. The virtiofs filesystem inside the Cowork VM cannot read these encrypted files.

What Should Happen?

Root Cause Analysis

The SDK binary is stored at:

C:\Users\<user>\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude-code-vm\2.1.78\claude

Running cipher /c on this file shows:

E claude
  Compatibility Level:
    Application Protected

This is not user-initiated EFS encryption — it is automatically applied by Windows to files within the MSIX LocalCache\Roaming path. The VM shares C:\Users\<user> as the virtiofs root, but virtiofs cannot read Application Protected files, resulting in input/output error.

Additional evidence: Copy-Item from the Store path to AppData\Roaming\Claude fails with The specified file could not be encrypted, and all skill downloads fail with EXDEV: cross-device link not permitted (cross-device rename between Store sandbox and Roaming paths).

Error Messages/Logs

RPC error -1: failed to open SDK binary: open /mnt/.virtiofs-root/shared/AppData/Local/Packages/Claude_pzs8sxrjxfjjc/LocalCache/Roaming/Claude/claude-code-vm/2.1.78/claude: input/output error


## Root Cause Analysis

The SDK binary is stored at:

C:\Users\<user>\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude-code-vm\2.1.78\claude


Running `cipher /c` on this file shows:

E claude
  Compatibility Level:
    Application Protected


This is **not** user-initiated EFS encryption — it is automatically applied by Windows to files within the MSIX `LocalCache\Roaming` path. The VM shares `C:\Users\<user>` as the virtiofs root, but virtiofs cannot read Application Protected files, resulting in `input/output error`.

Additional evidence: `Copy-Item` from the Store path to `AppData\Roaming\Claude` fails with `The specified file could not be encrypted`, and all skill downloads fail with `EXDEV: cross-device link not permitted` (cross-device rename between Store sandbox and Roaming paths)

Steps to Reproduce

Steps to Reproduce

  1. Install Claude Desktop via the MSIX installer from claude.com/download on a Windows 11 Pro machine
  2. Log in and start Cowork
  3. VM boots successfully, network connects, API is reachable
  4. SDK install step fails with virtiofs I/O error

Claude Model

Not sure / Multiple models

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.1.78

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

Expected Behavior

Cowork workspace should start successfully. The SDK binary should be readable by the VM via virtiofs.

Attempted Fixes (none resolved the issue)

  • Cleared SDK cache (claude-code-vm folder) and restarted — SDK re-downloads but gets re-encrypted
  • Cleared vm_bundles and restarted — VM rebuilds but same error
  • Ran cipher /d /s: on the Store path — files cannot be decrypted (Store sandbox prevents it, The parameter is incorrect)
  • Ran cipher /d /s: on AppData\Roaming\Claude — decrypted Roaming path but SDK is in Store path
  • Copied SDK binary to AppData\Roaming\Claude\claude-code-vm via robocopy /EFSRAW — file copies but VM hardcodes the Store subpath
  • Full uninstall and reinstall of Claude Desktop — same issue
  • Complete PC reboot between attempts

Suggested Fix

The VM's postConnect SDK install resolves the SDK path via getVMStorageSubpath which maps to the Store sandbox path:

[VM] getVMStorageSubpath: home=C:\Users\saman, vmStorageDir=C:\Users\saman\AppData\Roaming\Claude\claude-code-vm, subpath=AppData/Local/Packages/Claude_pzs8sxrjxfjjc/LocalCache/Roaming/Claude/claude-code-vm

Possible fixes:

  1. Store the SDK binary outside the MSIX LocalCache path (e.g., directly in AppData\Roaming\Claude\claude-code-vm)
  2. Use the Roaming path for vmStorageDir and subpath instead of the Store-redirected path
  3. Copy the SDK binary to a non-encrypted location before passing the path to the VM

View original on GitHub ↗

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