[BUG] Claude Desktop Workspace fails to start: EXDEV cross-device link not permitted (Local\Temp -> AppData\Roaming)

Resolved 💬 3 comments Opened Mar 24, 2026 by Tominori666 Closed Mar 27, 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?

Claude Desktop Workspace fails to start on every launch with an EXDEV error. The app tries to move rootfs.vhdx from AppData\Local\Temp to AppData\Roaming\Claude\vm_bundles using fs.rename(), but this fails because the Electron sandbox treats these two AppData directories as separate virtual devices, even though they are physically on the same C:\ drive.

What Should Happen?

Claude Desktop Workspace should initialize successfully. The rootfs.vhdx file should be moved from the temp directory to vm_bundles without errors.

Error Messages/Logs

EXDEV: cross-device link not permitted, rename 'C:\Users\tomin\AppData\Local\Temp\wvm-fsvQCl\rootfs.vhdx' -> 'C:\Users\tomin\AppData\Roaming\Claude\vm_bundles\claudevm.bundle\rootfs.vhdx'

Steps to Reproduce

  1. Launch Claude Desktop on Windows 11
  2. Wait for Workspace to initialize
  3. Error banner appears: "Claude のワークスペースの起動に失敗しました"
  4. Reproducible every launch. Deleting temp files or vm_bundles does not help.

Claude Model

None

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

claude --version

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

Both source and destination paths are on the same physical drive (C:\ Windows-SSD). No junctions or symlinks involved. The issue appears to be fs.rename() failing across a virtual filesystem boundary between AppData\Local and AppData\Roaming in the Electron sandbox environment. Suggested fix: use fs.cp() + fs.rm() instead of fs.rename() for cross-directory moves.

View original on GitHub ↗

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