[BUG] Cowork VM fails to start: Plan9 share fails on non-NTFS/unmounted volumes (E_INVALIDARG 0x80070057)

Resolved 💬 3 comments Opened Apr 4, 2026 by Phaethon-net Closed Apr 8, 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?

Summary

Cowork VM fails to start when any mounted drive letter on the host is non-standard (raw partition, EFI partition, unmounted VeraCrypt slot, or other non-NTFS volume). The VM service attempts to add a Plan9 share for every drive letter visible to SYSTEM, and fails fatally on the first one it cannot share, rather than skipping it gracefully.

Environment

  • OS: Windows 11
  • Claude Desktop version: 1.569.0.0
  • CoworkVMService runs as: LocalSystem

Error Message

Failed to start Claude's workspace
failed to add Plan9 share 'd': HcsWaitForOperationResult failed with HRESULT 0x80070057: {"Error":-2147024809,"ErrorMessage":""}

Log Evidence

From %ProgramData%\Claude\Logs\cowork-service.log:

[VM] Adding Plan9 share via HcsModifyComputeSystem: name=d path=D:\ port=9903 flags=0x10 hasToken=true
[HCS] HcsModifyComputeSystem returned: hr=0x0, lastErr=The operation completed successfully.
[HCS] Modify result: {"Error":-2147024809,"ErrorMessage":""}
[VM] Failed to add Plan9 share 'd': HcsWaitForOperationResult failed with HRESULT 0x80070057
[VNet] Virtual network stopped
[RPC] Server stopped

The VM boots successfully (HcsCreateComputeSystem and HcsStartComputeSystem both return hr=0x0). The failure occurs during the post-boot Plan9 share enumeration phase.

Root Cause

CoworkVMService enumerates all drive letters visible to SYSTEM and attempts to add each as a Plan9 share. It fails fatally (and kills the VM) on the first drive that HCS cannot share. Non-fatal/skippable cases encountered:

  • Raw/unformatted partition with an assigned drive letter (D: in first instance)
  • Unmounted VeraCrypt reserved drive slot with no volume attached (Q: in second instance)

Neither of these is accessible or useful to share, but the service does not check volume type or accessibility before attempting — and does not handle the failure gracefully.

Why It's Hard to Work Around

CoworkVMService runs as LocalSystem, so drive visibility cannot be restricted via user-level ACLs. Removing the offending drive letters is the only workaround, but on complex systems (encrypted volumes, multiple partitions) this causes whack-a-mole across multiple drive letters.

Successful Recovery Steps

  1. Remove offending drive letter(s) from Disk Management
  2. Run as Admin:
net stop CoworkVMService
taskkill /F /IM claude.exe
taskkill /F /IM cowork-svc.exe
net stop vmcompute
Remove-Item -Recurse -Force "$env:APPDATA\Claude\claude-code-vm" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:APPDATA\Claude\vm_bundles" -ErrorAction SilentlyContinue
net start vmcompute
net start CoworkVMService
  1. Relaunch Claude Desktop

Expected Behaviour

Cowork should either:

  • Only share a user-selected workspace folder, not all drive letters; or
  • Enumerate drive letters but skip any that are not standard local NTFS volumes without failing the entire VM boot

Additional Notes

This issue persists across app reinstalls and workspace reinstalls because the drive enumeration happens at runtime, not from a cached state. The stale drive letter reference also survives partial cleanup (stopping CoworkVMService alone is insufficient — vmcompute and the vm_bundles directory must both be reset).

What Should Happen?

Cowork should either:

  • Only share a user-selected workspace folder, not all drive letters; or
  • Enumerate drive letters but skip any that are not standard local NTFS volumes without failing the entire VM boot

Error Messages/Logs

Steps to Reproduce

Most recent claude windows app on a system with unmounted, encrypted drive(s).

Claude Model

Not sure / Multiple models

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.89 (Claude Code)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Other

Additional Information

This info. was generated by claude chat, which was used to troubleshoot the problem and submitted by Cowork.

View original on GitHub ↗

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