[BUG] Cowork EXDEV: cross-device link not permitted — rename within same directory (Windows 11 Pro, OneDrive present)

Open 💬 15 comments Opened Apr 8, 2026 by theopeixoto23

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?

Every time Cowork attempts to set up the workspace, the download of rootfs.vhdx completes and validates the checksum successfully, but the final rename() operation fails with EXDEV — even though both source and destination are within the exact same directory (claudevm.bundle\).

The error repeats on every retry. After the failure, Claude deletes the temp files immediately, leaving no residual files. cowork_vm_node.log is never created.

What Should Happen?

The rootfs.vhdx file should be successfully moved from the temp subdirectory .wvm-tmp-* to the bundle directory, and the Cowork VM should start normally.

Error Messages/Logs

Failed to start Claude's workspace EXDEV: cross-device link not permitted, rename 'C:\Users\theop\AppData\Roaming\Claude\vm_bundles\claudevm.bundle\.wvm-tmp-HdFDd7\rootfs.vhdx'     -> 'C:\Users\theop\AppData\Roaming\Claude\vm_bundles\claudevm.bundle\rootfs.vhdx' 

Event Log (System):
The Claude service terminated with the following service-specific error: Incorrect function. (Error code 1)

CoworkVMService status:
Status: Stopped
ExitCode: 1 (ERROR_INVALID_FUNCTION)

Steps to Reproduce

  1. Perform an in-place upgrade from Windows 11 Home to Windows 11 Pro (build 26200.8117)
  2. Have OneDrive installed and active (folder at C:\Users\<user>\OneDrive, separate from AppData)
  3. Install Claude Desktop from claude.ai/download
  4. Enable Hyper-V: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
  5. Enable HypervisorPlatform: Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform
  6. Reboot
  7. Open Claude Desktop → navigate to Cowork tab
  8. Observe EXDEV error after download completes

Claude Model

None

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

Claude Desktop 1.1062.0 (b81bcd) — 2026-04-06

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

Key detail: Both paths in the EXDEV error are inside the same parent directory (claudevm.bundle\). This is not a cross-drive issue. The source is a hidden subdirectory .wvm-tmp-* created by cowork-svc.exe inside the destination directory itself.

Troubleshooting already attempted (all failed):

  • Reboot — Error persists
  • Full reinstall (Remove-AppxPackage + manual data cleanup) — Error persists
  • Enable HypervisorPlatform + VirtualMachinePlatform + Hyper-V — Done, all Enabled
  • Disable CldFlt driver (sc.exe config CldFlt start= disabled) + reboot — CldFlt confirmed STOPPED, error persists
  • Manually create sessiondata.vhdx via New-VHD — Created successfully, CoworkVMService still fails
  • Pre-create vm_bundles\claudevm.bundle directory — Claude deletes and recreates; error unchanged
  • Create placeholder rootfs.vhdx at destination before launch — Error unchanged
  • FileSystemWatcher to intercept and copy .wvm-tmp-*\rootfs.vhdx — File deleted too fast, watcher does not fire
  • Verified $env:APPDATA is not a symlink or junction — Confirmed: normal directory
  • Verified OneDrive is at C:\Users\theop\OneDrive (not syncing AppData) — Confirmed: AppData not in OneDrive path
  • Confirmed OS build 26200.8117 (KB5086672)

AppData symlink check:
FullName: C:\Users\theop\AppData\Roaming — Target: {} — LinkType: (none)

Hypothesis: The in-place upgrade from Windows 11 Home → Pro may leave filesystem filter driver registrations or NTFS metadata in a state where Node.js fs.rename() across subdirectories within the same parent triggers EXDEV — even with CldFlt stopped. A copyFile + unlink fallback when EXDEV is encountered (as suggested in #30584) would resolve this regardless of the underlying filesystem state.

Related issues: #30584, #38457, #25476, #27801, #29941

View original on GitHub ↗

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