[Windows] Cowork: Session VM process not available - cowork-plugin-shim.sh copy fails from WindowsApps directory (VFS limitation)
Environment
- OS: Windows 11 Home (Build 26200)
- Claude Desktop version: 1.2581.0.0 (Windows Store / MSIX package)
- Installation type: Windows Store app (
C:\Program Files\WindowsApps\)
Bug Description
When using Cowork (Local Agent Mode), sessions consistently fail with:
Session VM process not available. The session may not be fully initialized.
The root cause is that Claude Desktop attempts to copy cowork-plugin-shim.sh from its WindowsApps installation directory to the session's shim-lib/shim.sh using the standard copyFile (CopyFileW) API. This operation always fails on Windows Store installs because the WindowsApps directory uses a VFS (Virtual File System) overlay that does not support CopyFileW.
Error in Logs
%APPDATA%\Claude\logs\main.log shows the following warning repeated for every session start attempt:
[warn] [LocalAgentModeSessionManager] Failed to start shim permission bridge:
UNKNOWN: unknown error, copyfile
'C:\Program Files\WindowsApps\Claude_1.2581.0.0_x64__pzs8sxrjxfjjc\app\resources\cowork-plugin-shim.sh'
-> 'C:\Users\<user>\AppData\Roaming\Claude\local-agent-mode-sessions\...\shim-lib\shim.sh'
Root Cause
Windows Store apps install into C:\Program Files\WindowsApps\, which uses NTFS + VFS package overlays. While files in this directory can be read via standard stream I/O (ReadFile / [System.IO.File]::ReadAllBytes), they cannot be copied using CopyFileW (the API underlying Node.js fs.copyFile() and PowerShell Copy-Item).
Attempted manual copy confirms the failure:
# This FAILS:
Copy-Item 'C:\Program Files\WindowsApps\Claude_...\cowork-plugin-shim.sh' -Destination $dest
# Error: "The given path's format is not supported" (NotSupportedException)
# This WORKS:
$bytes = [System.IO.File]::ReadAllBytes('C:\Program Files\WindowsApps\Claude_...\cowork-plugin-shim.sh')
[System.IO.File]::WriteAllBytes($dest, $bytes)
Workaround
Manually reading and writing the file via byte stream works. I wrote a PowerShell script as a temporary fix:
$src = "C:\Program Files\WindowsApps\Claude_1.2581.0.0_x64__pzs8sxrjxfjjc\app\resources\cowork-plugin-shim.sh"
$bytes = [System.IO.File]::ReadAllBytes($src)
# Then WriteAllBytes to each session's shim-lib\shim.sh
Suggested Fix
In the Claude Desktop source code, replace the copyFile() / fs.copyFileSync() call used for staging cowork-plugin-shim.sh with a stream-based copy (read + write), for example:
// Instead of:
fs.copyFileSync(srcShimPath, destShimPath);
// Use:
const data = fs.readFileSync(srcShimPath);
fs.writeFileSync(destShimPath, data);
This will work correctly for both Windows Store (MSIX) installs and traditional EXE installs.
Impact
All Cowork sessions are broken on Windows Store installs. The VM starts successfully, but every session fails immediately because the permission shim cannot be initialized.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗