[BUG] Claude Desktop MSIX fails to launch — EBADF on renameSync(git-worktrees.json) — on Windows 11 25H2 Build 26200

Resolved 💬 3 comments Opened Apr 17, 2026 by mystconqueror Closed Jun 12, 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 (MSIX build, version 1.3109.0.0) fails to launch on Windows 11 25H2 Build 26200.8037. The app crashes before any window is created, with a "Claude Desktop failed to launch" dialog. The crash occurs on every launch attempt — 100% reproduction rate, no user action required between install and crash.
Environment:

OS: Windows 11 Pro 25H2, Build 26200.8037
Claude Desktop: 1.3109.0.0 (MSIX, installed via Microsoft Store)
Package path: C:\Program Files\WindowsApps\Claude_1.3109.0.0_x64__pzs8sxrjxfjjc\
Regression: Works on Windows 11 24H2. Breaks deterministically on 25H2 Build 26200.

Root cause: The failing call site is electron-store's atomic-write path (write to <target>.tmp-<hash>, then renameSync over target). MSIX transparently redirects %APPDATA%\Claude to the VFS path %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\. On 25H2 Build 26200, the VFS layer invalidates the file handle before the rename syscall completes, so renameSync returns EBADF. This worked on 24H2 — the VFS behavior is a Windows regression, but the write pattern is also fragile and fixable client-side.
Impact: Critical severity. The only workaround is the Squirrel build via winget install Anthropic.Claude, but Squirrel does not ship Cowork. Cowork users on Win11 25H2 currently have no working install path.
Prior reports (locked by bot, mis-triaged to claude-code repo — this issue is correctly filed against Claude Desktop):

anthropics/claude-code#33055 (same bug, version 1.1.6041)
anthropics/claude-code#40311 (same bug, version 1.1.9310)

Suggested fixes (any one unblocks affected users without waiting on Microsoft):

Write persistent state to %LOCALAPPDATA%\Claude\ directly — not intercepted by MSIX VFS, atomic rename works normally. Cleanest option.
Catch EBADF on rename and fall back to writeFileSync + fsync. Smallest diff.
Switch to an atomic-write library that doesn't rely on cross-boundary rename (e.g., lockfile-based).

What Should Happen?

Claude Desktop MSIX should launch successfully on Windows 11 25H2 Build 26200, just as it does on 24H2. The app should be able to read and write its config files (git-worktrees.json and others) without crashing, regardless of whether writes are redirected through the MSIX VFS layer.

Error Messages/Logs

Error: EBADF: bad file descriptor, rename 'C:\Users\<USER>\AppData\Roaming\Claude\git-worktrees.json.tmp-6397517374631e6a' -> 'C:\Users\<USER>\AppData\Roaming\Claude\git-worktrees.json'
    at renameSync (node:fs:1012:11)
    at s (C:\Program Files\WindowsApps\Claude_1.3109.0.0_x64__pzs8sxrjxfjjc\app\resources\app.asar\.vite\build\index.js:45:159468)
    at Object.g [as writeFileSync] (C:\Program Files\WindowsApps\Claude_1.3109.0.0_x64__pzs8sxrjxfjjc\app\resources\app.asar\.vite\build\index.js:45:166571)
    at a._write (C:\Program Files\WindowsApps\Claude_1.3109.0.0_x64__pzs8sxrjxfjjc\app\resources\app.asar\.vite\build\index.js:53:41898)
    at set store (C:\Program Files\WindowsApps\Claude_1.3109.0.0_x64__pzs8sxrjxfjjc\app\resources\app.asar\.vite\build\index.js:53:40431)
    at new F (C:\Program Files\WindowsApps\Claude_1.3109.0.0_x64__pzs8sxrjxfjjc\app\resources\app.asar\.vite\build\index.js:53:38186)
    at new a (C:\Program Files\WindowsApps\Claude_1.3109.0.0_x64__pzs8sxrjxfjjc\app\resources\app.asar\.vite\build\index.js:53:44208)
    at new pSr (C:\Program Files\WindowsApps\Claude_1.3109.0.0_x64__pzs8sxrjxfjjc\app\resources\app.asar\.vite\build\index.js:988:5930)
    at Object.<anonymous> (C:\Program Files\WindowsApps\Claude_1.3109.0.0_x64__pzs8sxrjxfjjc\app\resources\app.asar\.vite\build\index.js:992:542)
    at Module._compile (node:internal/modules/cjs/loader:1820:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1953:10)
    at Module.load (node:internal/modules/cjs/loader:1540:32)
    at Module._load (node:internal/modules/cjs/loader:1342:12)
    ...
{
  errno: -4083,
  code: 'EBADF',
  syscall: 'rename',
  path: 'C:\\Users\\<USER>\\AppData\\Roaming\\Claude\\git-worktrees.json.tmp-6397517374631e6a',
  dest: 'C:\\Users\\<USER>\\AppData\\Roaming\\Claude\\git-worktrees.json'
}
(node:143952) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.

Steps to Reproduce

  1. On Windows 11 25H2 Build 26200 (confirmed on 26200.8037), install Claude Desktop MSIX from the Microsoft Store or claude.ai/download.
  2. Launch Claude Desktop via any method — Start menu, shell:AppsFolder, or running claude.exe directly from the package path.
  3. The app crashes immediately with "Claude Desktop failed to launch". No window is ever rendered.
  4. Check logs — the EBADF rename error on git-worktrees.json is present on every launch attempt.

Claude Model

None

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

1.3109.0.0

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Windows Terminal

Additional Information

Attempted workarounds that did NOT resolve the issue:

Complete uninstall + reinstall
Pre-creating git-worktrees.json as an empty file in both the real %APPDATA%\Claude\ path and the MSIX VFS path
Deleting stale .tmp-* sidecar files before launch
Re-registering the MSIX package via Add-AppxPackage

Only working workaround: Install the Squirrel build via winget install Anthropic.Claude — but this build does not include Cowork, so it is not a viable solution for users who need Cowork.

View original on GitHub ↗

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