[BUG] Cowork Windows: ENOENT rename fails when AppData redirected to secondary drive via junction
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?
OS: Windows 11 Pro
Claude Desktop version: latest
Cowork VM bundle download completes successfully (checksum validated) but always fails on the rename step with ENOENT or EXDEV when AppData is on a different drive or redirected via junction.
Exact error: ENOENT: no such file or directory, rename 'D:\Temp\wvm-xxxxx\rootfs.vhdx' -> 'C:\Users\Gamer\AppData\Roaming\Claude\vm_bundles\claudevm.bundle\rootfs.vhdx'
Steps to reproduce: Install Claude Desktop on Windows with C: nearly full. Redirect TEMP and/or AppData to secondary drive. Attempt Cowork workspace setup. Download completes but rename fails every time.
Root cause: Node.js fs.rename() fails across junction boundaries and different drive letters. The fix is to use fs.copyFile() + fs.unlink() as a fallback when rename fails with ENOENT or EXDEV.
Related issues: #25476, #27801, #13476
What Should Happen?
Cowork workspace should complete setup successfully. When the VM bundle download finishes, the file should move from the temp folder to the AppData vm_bundles directory without failing. The app should use a copy and delete fallback instead of rename when the source and destination are on different drives or separated by a junction.
Error Messages/Logs
2026-03-04 15:00:54 [info] rootfs.vhdx.zst checksum validated
2026-03-04 15:00:54 [error] [download] VM download failed: ENOENT: no such file or directory, rename 'C:\Users\Gamer\AppData\Local\Temp\wvm-bL1nId\rootfs.vhdx' -> 'C:\Users\Gamer\AppData\Roaming\Claude\vm_bundles\claudevm.bundle\rootfs.vhdx'
2026-03-04 15:14:58 [info] rootfs.vhdx.zst checksum validated
2026-03-04 15:14:59 [error] [download] VM download failed: ENOENT: no such file or directory, rename 'C:\Users\Gamer\AppData\Local\Temp\wvm-bL1nId\rootfs.vhdx' -> 'C:\Users\Gamer\AppData\Roaming\Claude\vm_bundles\claudevm.bundle\rootfs.vhdx'
Failed to start Claude's workspace
EXDEV: cross-device link not permitted, rename 'D:\Temp\wvm-7lTeOx\rootfs.vhdx' -> 'C:\Users\Gamer\AppData\Roaming\Claude\vm_bundles\claudevm.bundle\rootfs.vhdx'
Steps to Reproduce
- Install Claude Desktop on Windows 11 Pro with C: drive nearly full (under 10GB free)
- Migrate user data to secondary drive (D:) to free space
- Redirect AppData to D: via NTFS junction: mklink /J "C:\Users\[user]\AppData\Roaming\Claude" "D:\Claude-AppData"
- Set TEMP/TMP environment variables to D:\Temp
- Open Claude Desktop and navigate to Cowork tab
- Click Download or Reinstall Workspace
- Download completes and checksum validates successfully
- Rename step fails with ENOENT or EXDEV error
- VM bundle is deleted and process repeats indefinitely
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.68 (Claude Code)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
This is a Cowork (Claude Desktop) issue, not Claude Code CLI. Claude Code version field does not apply.
Additional context:
- C: drive was nearly full (under 3GB free) which caused initial download failures
- Freed ~44GB by uninstalling apps and clearing temp files
- Tried multiple approaches: junction point, moving TEMP to D:, Defender exclusions
- Download consistently completes and checksum validates successfully
- Only the final rename/move step fails
- Issue persists regardless of whether TEMP is on C: or D:
- Claude Desktop version: 1.1.4498.0
- Debug logs submitted via in-app log sharing
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗