[BUG] Cowork EXDEV: cross-device link not permitted — rename within same directory (Windows 11 Pro, OneDrive present)
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
- Perform an in-place upgrade from Windows 11 Home to Windows 11 Pro (build 26200.8117)
- Have OneDrive installed and active (folder at C:\Users\<user>\OneDrive, separate from AppData)
- Install Claude Desktop from claude.ai/download
- Enable Hyper-V: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
- Enable HypervisorPlatform: Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform
- Reboot
- Open Claude Desktop → navigate to Cowork tab
- 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
This issue has 15 comments on GitHub. Read the full discussion on GitHub ↗