[BUG] Cowork fails on Windows 11 with VBS enabled — S-1-5-83-0 ACE stripped by VbsSiPolicy.p7b
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 consistently fails to start with 0x80070005 on Windows 11 Pro with Virtualization-based Security (VBS) enabled. The S-1-5-83-0 (NT VIRTUAL MACHINE) ACE is stripped immediately after being written to .vhdx files — even outside the UWP sandbox, even from SYSTEM context, even with Defender disabled and excluded. icacls reports success but the SID never appears in subsequent ACL checks.Environment:
OS: Windows 11 Pro x64
Claude Desktop: 1.1.9310.0
Hyper-V: Enabled, vmms Running
Virtualization-based Security: Running
VbsSiPolicy.p7b: Present in C:\Windows\System32\CodeIntegrity\
App Control for Business: Enforced
No VPN, no corporate MDM
What Should Happen?
CoworkVMService should set the .vhdx ACL permissions internally from within its own process before calling HCS to boot the VM. The service runs as LocalSystem with Hyper-V privileges and is already in the VBS trusted context — the ACE will persist when written from there. External permission setting by the installer or user shell will never work on VBS-enabled systems, which is the default state on modern Windows 11 hardware with TPM 2.0 and Secure Boot.
Specifically the fix should be:
Before the vm_boot step in the startup sequence, CoworkVMService should enumerate all .vhdx files in the bundle and call the Windows Security API to add S-1-5-83-0 with FullControl and inheritance flags — from inside the service process itself
The installer should do the same via a temporary elevated helper process registered with SCM during installation
Error Messages/Logs
From cowork_vm_node.log:
2026-03-28 02:36:24 [info] [VM:start] Beginning startup, bundlePath=C:\Users\amitj\AppData\Roaming\Claude\vm_bundles\claudevm.bundle
2026-03-28 02:36:24 [info] [VM:steps] create_vm_config completed (45ms)
2026-03-28 02:36:24 [info] [VM:steps] vm_boot started
2026-03-28 02:36:25 [error] [VM:start] VM boot failed: HCS operation failed: failed to start VM: HcsWaitForOperationResult failed with HRESULT 0x80070005: Account does not have permission to open attachment 'C:\Users\amitj\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\vm_bundles\claudevm.bundle\rootfs.vhdx (Lun 0)'. Error: 'Access is denied.' (0x80070005). (Virtual machine ID 5F8E52F8-0728-54A1-B514-05035CD66D9D)
2026-03-28 02:36:25 [info] [VM:start] Skipping auto-reinstall (already attempted once)
ACL verification showing SID being stripped immediately after icacls write:
C:\ClaudeVM\rootfs.vhdx NT AUTHORITY\SYSTEM:(F)
BUILTIN\Administrators:(F)
DESKTOP-M6H5MTE\amitj:(F)
S-1-5-83-0 never appears despite icacls reporting "Successfully processed 1 files; Failed processing 0 files"
System Information confirming VBS:
Virtualization-based security: Running
Virtualization-based security Available Security Properties: Base Virtualization Support, Secure Memory Overwrite, UEFI Code Readonly
App Control for Business policy: Enforced
Troubleshooting Already Attempted (all unsuccessful)
icacls with "NT VIRTUAL MACHINE\Virtual Machines" — SID stripped
icacls with raw SID S-1-5-83-0 — SID stripped
icacls with specific VM ID — SID stripped
PowerShell Set-Acl via .NET Security API — SID stripped
Moved .vhdx files to C:\ClaudeVM outside UWP sandbox — SID stripped
Created junction from UWP path to C:\ClaudeVM — SID stripped
Disabled Defender real-time protection — SID stripped
Added Claude package to Defender exclusions — SID stripped
Full uninstall and reinstall — SID stripped
Running Claude as Administrator — SID stripped
Manually starting CoworkVMService — service starts but VM still fails
Steps to Reproduce
2026-03-28 02:36:24 [info] [VM:start] Beginning startup, bundlePath=C:\Users\username\AppData\Roaming\Claude\vm_bundles\claudevm.bundle
2026-03-28 02:36:24 [info] [VM:steps] create_vm_config completed (45ms)
2026-03-28 02:36:24 [info] [VM:steps] vm_boot started
2026-03-28 02:36:25 [error] [VM:start] VM boot failed: HCS operation failed: failed to start VM: HcsWaitForOperationResult failed with HRESULT 0x80070005: Account does not have permission to open attachment 'C:\Users\username\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\vm_bundles\claudevm.bundle\rootfs.vhdx (Lun 0)'. Error: 'Access is denied.' (0x80070005). (Virtual machine ID 5F8E52F8-0728-54A1-B514-05035CD66D9D)
2026-03-28 02:36:25 [info] [VM:start] Skipping auto-reinstall (already attempted once)
ACL verification showing SID being stripped immediately after icacls write:
C:\ClaudeVM\rootfs.vhdx NT AUTHORITY\SYSTEM:(F)
BUILTIN\Administrators:(F)
DESKTOP-M6H5MTE\username:(F)
S-1-5-83-0 never appears despite icacls reporting "Successfully processed 1 files; Failed processing 0 files"
System Information confirming VBS:
Virtualization-based security: Running
Virtualization-based security Available Security Properties: Base Virtualization Support, Secure Memory Overwrite, UEFI Code Readonly
App Control for Business policy: Enforced
Troubleshooting Already Attempted (all unsuccessful)
icacls with "NT VIRTUAL MACHINE\Virtual Machines" — SID stripped
icacls with raw SID S-1-5-83-0 — SID stripped
icacls with specific VM ID — SID stripped
PowerShell Set-Acl via .NET Security API — SID stripped
Moved .vhdx files to C:\ClaudeVM outside UWP sandbox — SID stripped
Created junction from UWP path to C:\ClaudeVM — SID stripped
Disabled Defender real-time protection — SID stripped
Added Claude package to Defender exclusions — SID stripped
Full uninstall and reinstall — SID stripped
Running Claude as Administrator — SID stripped
Manually starting CoworkVMService — service starts but VM still fails
Claude Model
Not sure / Multiple models
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
Claude Desktop version: 1.1.9310.0
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗