[BUG] Claude Desktop (Windows/MSIX): main process self-exits with code -1 seconds after launch - survives reinstall, empty profile and reboot
## Summary
Since a crash that happened while previewing a localhost dev server from inside the app, Claude Desktop no longer stays running on this machine. Every launch boots normally — sometimes far enough to render the real UI at claude.ai/epitaxy — and then the main process terminates itself with exit code -1 (0xFFFFFFFF) between 1.5 and 10 seconds after start. The child processes shut down cleanly (exit code 0) after the main process is gone.
This is not a crash: with WER LocalDumps enabled no dump is produced, Chromium verbose logging contains no FATAL/ERROR, Sentry records no exception event, and the app's own main.log shows no exception — the log simply stops mid-line.
Environment
| | |
|---|---|
| OS | Windows 11 Home, 10.0.26200 Build 26200.9168 (x64) |
| App version | reproduced on 1.30096.0.0 and 1.28929.0.0 |
| Install type | MSIX, Claude_pzs8sxrjxfjjc, SignatureKind: Developer |
| Electron/Node | Node 24.18.0 |
| CPU / RAM | Intel Core i7-9700F, 16 GB |
| GPU | NVIDIA GeForce RTX 2070 SUPER, driver 32.0.15.9186 (single GPU, no hybrid graphics) |
| Displays | 3 × 1920×1080 |
| Virtualization | VirtualMachinePlatform enabled; HypervisorPlatform and WSL disabled |
| Antivirus | Windows Defender only; no ASR rules, Controlled Folder Access off, Smart App Control off |
Timeline
| Time (local) | Event |
|---|---|
| 22:25 | App running normally, working in a Claude Code session (project: an Electron+Vite game) |
| ~22:40 | User previews the project's localhost dev server from inside the app → app crashes |
| 22:42 | First renderer error: Electron sandboxed_renderer.bundle.js script failed to run / TypeError: Cannot destructure property 'preloadScripts' of 'binding.startupData' as it is null. |
| 22:42 → | No successful launch since. |
| 23:13 | Machine rebooted — no change |
| 23:14 | App auto-updated 1.28929.0.0 → 1.30096.0.0 — no change |
| 23:53 | Reinstalled from the official installer (downgrade to 1.28929.0.0) — no change |
Key evidence: kernel process trace
Captured via Microsoft-Windows-Kernel-Process/Analytic:
00:21:44.145 START PID 16216 <- main process (returned by ActivateApplication)
00:21:44.363 START PID 1740
00:21:44.821 START PID 15068
00:21:44.846 START PID 16240
00:21:45.055 START PID 1100
00:21:45.065 START PID 6808
00:21:45.206 START PID 8764
00:21:45.254 STOP PID 6808 ExitCode 0
00:21:45.601 STOP PID 16216 ExitCode 4294967295 <- main process, -1
00:21:45.607 STOP PID 16240 ExitCode 0
00:21:45.611 STOP PID 1100 ExitCode 0
00:21:45.616 STOP PID 15068 ExitCode 0
00:21:45.618 STOP PID 8764 ExitCode 0
00:21:45.642 STOP PID 1740 ExitCode 0
The main process exits first, with -1; everything else follows with a clean 0. The Desktop AppX container is created and destroyed normally on every attempt (AppModel-Runtime IDs 210/211/201 then 217) — there is no orphaned silo/job object, so this is a different failure mode from issue #53247.
Where main.log stops
The last logged line varies between attempts, which suggests the exit is asynchronous rather than tied to one code path:
[browser-live-preview] initialized (passive tap)
mainView backgroundThrottling disabled (... boot: in progress)
[watch-record] failed to subscribe to swift events Cannot find package '@ant/claude-swift'
LocalAgentModeSessions.getDefaultWorkspaceFolders: 0 folders
[RemotePluginManager] Sync complete: 0 downloaded, 0 removed, 0 orphans cleaned
In one run with an empty profile the app got all the way to mainView backgroundThrottling restored (... boot: done) and a visible window titled "Claude" showing claude.ai/login, then exited one second later.
A healthy run (22:25, before the failure) continues past that point with:
[PluginBridgeMcp] no account/org yet — skipping plugin scan
[account] IPC did not provide accountUuid, falling back to bootstrap API
claude.ai account active and logged in
[WarmLifecycle:cowork] Destroyed
[WarmLifecycle:cowork] Destroyed never appears in any failing run.
Diagnostics that came back empty
- WER LocalDumps enabled for
Claude.exe(DumpType 2) → no dump written - Chromium verbose log (
--enable-logging=file --v=1, 129 KB) → noFATAL, noERROR; log ends mid-stream while the renderer is fetching the web app's JS modules - Sentry
scope_v3.json→ no exception, no breadcrumbs - Windows Application/System event logs → no Application Error, no Application Hang
- Crashpad
reports/→ empty (last modified July) app.asarcontains no literalexit(-1)call site
Ruled out
Each of these was tested individually and did not change the behaviour:
- Both app versions (1.30096.0.0 and 1.28929.0.0)
- Full reinstall from the official installer
Add-AppxPackage -Register(re-registration)- Completely empty user profile (
LocalCache\Roaming\Clauderenamed away) - Different profile path (
--user-data-dir=…) - Resetting the UWP container state (
Settings,AC,LocalState,RoamingState,TempState,SystemAppData) - Deleting the Claude Code session and transcripts associated with the original crash
- All 25 transcript
.jsonlfiles validated — none corrupt --disable-gpu,--no-sandbox,--allow-multiple-instances- Stopping the
CoworkVMService(Claude VM Service) entirely - Providing the requested Claude Code bundle 2.1.229 locally (the app re-downloads it on every start and never finishes; the partial stalls at 67 MB of ~279 MB)
- Reboot
- Windows Defender, ASR, Controlled Folder Access, Smart App Control, Code Integrity, parental controls, IFEO debugger entries — all clean/absent
- Bluetooth (the
[buddy]BLE bridge): machine has no Bluetooth adapter at all - Disk space (250 GB free), environment variables (no
ELECTRON_RUN_AS_NODE, noNODE_OPTIONS) - Other Electron apps (Notion) run for hours without issue on the same machine
Reproduction
Not reliably reproducible from scratch — but on this machine it is 100% reproducible: every launch fails identically, and has done so across ~40 attempts, two app versions, a reinstall and a reboot.
The triggering action was previewing a localhost dev server (an Electron+Vite project) from inside a Claude Code session in the desktop app.
Notes
- The app re-downloads Claude Code bundle 2.1.229 on every start into
claude-code\2.1.229\download.<hash>.zst.partialand never completes it, because the process exits first.2.1.227is present and verified. main-window.loghas been 0 bytes since before the failure; window output goes tounknown-window.loginstead.- Possibly related, but different mechanisms: #46390 (worked, then crashed, reinstalled, won't open), #53247 (orphaned silo — ruled out here).
Logs available on request
main.log, unknown-window.log, claude.ai-web.log, cowork_vm_node.log, ssh.log, the Chromium verbose log, and the kernel process trace.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗