Windows MSIX desktop app: Browser pane crashes Electron GPU process and kills the app; failed MSIX self-repair then uninstalls it and wipes packaged data

Status Open
Reported on v2.1.222
Maintainer reply None cached
Activity 2 comments · opened Aug 11, 2026

What Happened?

On the Windows desktop app, opening the Browser pane (preview_start, or any browser tool that creates a browser preview) crashes Electron's GPU process, which takes the whole app down with it. The session dies mid-turn with no crash dialog and no Windows Error Reporting entry.

That alone would be recoverable. The damaging part is what Windows does next.

Because the app ships as an MSIX package, the failed relaunch triggers Windows' automatic package repair. The repair path attempts Add from the original installer package (Claude-<id>.msix), which is no longer present on disk. It fails with 0x80070002 (file not found) → 0x80073CF0, retries in a loop, and after ~35 minutes escalates to a full Remove of the package. The app is uninstalled and the packaged app data is destroyed. Recovery required manually re-running the installer.

The Remove ... PreserveApplicationData calls in that path are also rejected with 0x80073CFA ("PreserveApplicationData flag can only be used on a package that was deployed in development mode"), so nothing in the repair path actually preserves user data.

Data under %USERPROFILE%\.claude\ survived because it lives outside the package. Everything inside the package was lost — cached Claude Code binary, plugins, logs.

What Should Happen?

  1. A GPU process crash should not terminate the app. Electron should respawn the GPU process, or the app should fall back to software compositing.
  2. Windows' MSIX repair should not be able to escalate to a full uninstall. If the app relies on package repair, the source .msix needs to remain available (or repair needs to be pre-empted), otherwise a transient crash can cascade into data loss.

Error Messages/Logs

Identical GPU exit code across all three occurrences, before and after a clean driver reinstall:

2026-08-10 15:45:05  [Preview] Created browser preview
2026-08-10 15:45:08  GPU process gone: { type: 'GPU', reason: 'crashed', exitCode: 101457950, serviceName: 'GPU' }

2026-08-10 16:48:30  [Preview] Created browser preview { serverId: 'browser-preview-...' }
2026-08-10 16:48:36  GPU process gone: { type: 'GPU', reason: 'crashed', exitCode: 101457950, serviceName: 'GPU' }

2026-08-10 18:28:51  GPU process gone: { type: 'GPU', reason: 'crashed', exitCode: 101457950, serviceName: 'GPU' }

cowork-service.log, showing the app dying one second after the preview is created:

2026/08/10 15:45:08 [Server] Persistent RPC: connection ended: failed to read length: EOF
2026/08/10 15:45:18 Service stop requested
2026/08/10 15:45:18 [Server] Stopping VM for session ...
2026/08/10 15:45:18 Service stopped.

Windows AppXDeploymentServer/Operational, the repair cascade:

15:45:17  603   Started deployment RegisterByPackageFullName ... Options
                ForceTargetApplicationShutdownOption,RepairAppRegistrationOption
15:45:17  649   Trying to repair ACLs for \\?\C:\Program Files\WindowsApps\Claude_<version>_x64__<pfn>
15:45:18  649   ACLs repaired successfully ... Register next time should succeed
15:45:18  9650  Succesfully terminated service ... in package CoworkVMService
15:45:34  603   Started deployment Add operation ... Claude-<id>.msix
15:45:34  402   error 0x80070002: Reading manifest from location: Claude-<id>.msix failed
                with error: The system cannot find the file specified.
15:45:34  404   AppX Deployment operation failed ... error 0x80073CF0
   ... this cycle repeats ~15 times ...
16:21:13  9644  AllowUninstall successful for package Claude_<version>_x64__<pfn>
16:21:14  400   Deployment Remove operation ... finished successfully     <-- app uninstalled

The PreserveApplicationData rejection:

18:01:18  717   Windows cannot remove Claude_<version>_x64__<pfn> because the
                PreserveApplicationData flag can only be used on a package that was
                deployed in development mode.
18:01:18  404   AppX Deployment operation failed ... error 0x80073CFA

No Windows Error Reporting report and no Application Error event is generated for the app process in any of the three crashes.

Steps to Reproduce

  1. Windows 11 with an NVIDIA GPU on driver 610.88.
  2. Open the Claude desktop app (MSIX install from the official installer).
  3. In a session, open the Browser pane — e.g. ask Claude to open any moderately heavy page. preview_start against a trivial page (example.com) survived; navigating to a real site reproduced it every time.
  4. Within ~20 seconds the GPU process crashes with exitCode 101457950 and the entire app exits.
  5. Attempt to relaunch. If the relaunch fails activation, Windows begins the MSIX repair loop described above.

Reproduced 3/3 times on a real site, across two independent sessions.

Claude Code Version

2.1.222 (desktop app 1.26832.0)

Platform

Windows 11 Pro, build 26200, x64

Is this a regression?

Don't know

Environment notes

  • GPU: NVIDIA GeForce RTX 3060, driver 610.88 (Windows driver version 32.0.16.1088)
  • CPU: AMD Ryzen 5 5500 — no integrated GPU, so no iGPU fallback available
  • 16 GB RAM, ~8 GB free at time of crash — not memory pressure
  • No TDR events (Display 4101/4102); the display driver never reset system-wide, so the fault is confined to Electron's GPU process
  • Windows Defender took no action; disk healthy, no NTFS errors

What was ruled out

  • Not a corrupted driver install. A clean reinstall of 610.88 (Custom → Perform a clean installation) plus a reboot produced the byte-identical exit code 101457950. Fair test, negative result.
  • Not memory or thermal pressure. ~8 GB free; no low-memory or resource-exhaustion events.
  • Not a system-wide GPU fault. No TDR/driver-reset events at any point.

Workaround in use

Avoid the Browser pane entirely and use WebFetch for page reads instead — unaffected.

For anyone who hits the uninstall cascade: keep the original installer. Windows cannot complete the repair without it, which is precisely why a transient crash escalated to a full uninstall.

View original on GitHub ↗

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