Claude Desktop MSIX updates on Windows Server cause session data loss + EXDEV save errors
Environment
- OS: Windows Server 2025 Standard 10.0.26100
- Claude Desktop: MSIX package, current version Claude_1.569.0.0_x64__pzs8sxrjxfjjc
- Update URL: https://api.anthropic.com/api/desktop/win32/x64/msix/update
Bug Description
Two related issues causing complete loss of conversation history on Windows Server:
1. MSIX Update removes all session data
Each Claude Desktop MSIX update follows a Remove+Add pattern (visible in AppX deployment logs). This wipes the .claude directory contents including sessions/ and projects/ session files. The %APPDATA%\Claude\ directory is also reset (creation date matches last update: March 31).
Update history from deployment logs:
- Mar 29: Register 1.1.9493.0
- Mar 31: Add 1.1.9669.0 → Remove 1.1.9669.0 → Stage+Add 1.1.9669.0
- Apr 01: Add 1.2.234.0
- Apr 03: Add 1.569.0.0
2. EXDEV: cross-device link not permitted - Session save continuously fails
Even between updates, session saving fails with EXDEV error. The app writes a .tmp file and tries to rename() it to the final location, but the MSIX virtualized filesystem causes a cross-device link error.
From main.log:
Failed to save session local_xxx: EXDEV: cross-device link not permitted, rename
'C:\Users\...\AppData\Roaming\Claude\claude-code-sessions\...\local_xxx.json.tmp'
-> 'C:\Users\...\AppData\Roaming\Claude\claude-code-sessions\...\local_xxx.json'
This error repeats for every session save attempt, and also affects SkillsPlugin downloads (pdf, docx, xlsx, pptx, skill-creator all fail to download).
3. Additional issues
- CoworkVMService fails with "signature verification initialization failed: failed to get service executable path" after updates
- Stale
WindowsApps\Deleted\Claude_1.1.9669.0*folder fails to clean up repeatedly - MoAppHang events frequent (crash reports reference old version 1.1.8629.0 vs installed 1.569.0.0)
Expected Behavior
- Session data should survive MSIX updates
rename()should usecopyFile+unlinkfallback whenEXDEVis detected (common Node.js pattern)- The
.claudeuser data directory should not be tied to the MSIX package lifecycle
Workaround
Using the Claude Code memory system (~/.claude/projects/.../memory/) to persist important context, as this directory survives better than session files.
Suggested Fix
For the EXDEV issue: replace fs.rename() with a cross-device-safe wrapper that catches EXDEV and falls back to fs.copyFile() + fs.unlink(). This is a well-known Node.js issue when source and destination are on different filesystems/volumes.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗