Windows MSIX: failed auto-update while app is hung uninstalls Claude Desktop (RemoveForAllUsers) - app disappears, daily reinstall required
Claude Desktop (Windows MSIX): failed auto-update while app is hung silently uninstalls the package — app "disappears" and must be reinstalled daily
Environment
- Claude Desktop 1.24012.9 (MSIX, package
Claude_pzs8sxrjxfjjc), bundled Claude Code 2.1.219 - Windows 10 Pro 19045, 36 GB RAM
- GPU: AMD Radeon(TM) integrated graphics, driver 31.0.21924.61 (Dec 2025)
Symptom (user-visible)
Shortly after starting a Claude Code session in the desktop app, the app freezes and disappears with no error dialog. Afterwards the app cannot be launched at all — it is no longer installed — and has to be reinstalled from the .msix. This has happened daily (July 25, 27, 28).
Root-cause chain (from logs on the affected machine)
Two independent bugs compound:
1. GPU process crash hangs the whole app
%APPDATA%\Claude\logs\main.log shows 5 occurrences (Jul 25–28) of:
GPU process gone: { type: 'GPU', reason: 'crashed', exitCode: 101457950, serviceName: 'GPU' }
Each occurs seconds after a Browser/preview pane is created ([Preview] Created browser preview). After the GPU process dies the app does not recover or show any error — main.log goes silent (e.g. today: last entry 09:47:11, nothing until relaunch at 09:54:34) and Windows Error Reporting records MoAppHang (fault bucket 1471911898834861685, hang signature 4185) and terminates the app. gpu-info.json shows Chromium has already blocklisted most features on this GPU (gl=none, skiaBackendType: None, no D3D12/Vulkan).
2. Auto-update during the hang uninstalls the app and doesn't reinstall it
Microsoft-Windows-AppXDeploymentServer/Operational for today (identical pattern Jul 25 and 27):
09:26:39 Add Claude-3567290728.msix (ForceApplicationShutdown, ForceUpdateFromAnyVersion) OK <- user reinstall
09:27:46 (main.log) GPU process gone -> app hung
09:36:53 Add Claude-3567290728.msix FAILED 0x80070020 (sharing violation - hung app still locks files)
09:37:25 Add retry FAILED 0x80070020
09:39:00 Remove RemoveForAllUsers OK -> package moved to WindowsApps\Deleted ** app is now gone **
09:46:19 Add Claude-3567290728.msix OK <- user reinstalls again
09:47:11 (main.log) GPU process gone -> app hung again
09:49:51 Remove RemoveForAllUsers OK -> ** app gone again ** (finished 09:50:26, same second as WER AppHang)
09:54:22 Add Claude-3737152193.msix OK <- user reinstalls again (current session)
Repair attempts also fail while wedged: RegisterByPackageFullName … RepairAppRegistrationOption → 0x80073D02 (Jul 25 23:04–23:05, Jul 27 09:34 and 14:08).
So the update/installer flow, upon hitting 0x80070020, falls back to a full Remove (RemoveForAllUsers) and then never completes (or delays) the subsequent Add — leaving the user with no installed app and no error message. From the user's perspective the app "crashes and disappears, then cannot be found".
Expected behavior
- A GPU process crash should not hang the app indefinitely (restart GPU process / fall back to software rendering / show an error).
- The updater should never leave the machine with the package removed: if the Add fails with
0x80070020, don't Remove the existing package; if a Remove+Add fallback is used, the Remove must be gated on a guaranteed successful staged Add (or rolled back).
Additional notes
- The app was originally a Squirrel install migrated to MSIX (
[MSIX] Filesystem not virtualized — … (likely Squirrel upgrade)in main.log). - Startup also logs
EBUSYcopyingchrome-native-host.exeevery launch, consistent with leftover locked files from the hung previous instance. - The standalone Claude Code CLI (native installer, 2.1.220) on the same machine is unaffected.
3 Comments
Reproduced again ~1h after filing (6th GPU crash since Jul 25, 3rd full uninstall today). Same chain, from logs: 10:16:16 '[Preview] Created browser preview' -> 10:16:20 'GPU process gone (exitCode 101457950)' -> main.log silent -> RepairAppRegistration fails 0x80073D02 at 10:18:34 and 10:36:54 -> update Add fails 0x80070020 at 10:38:57 and 10:45:40 -> 10:50:09 'Remove RemoveForAllUsers' succeeds (package uninstalled) -> manual reinstall 10:53. The browser-preview -> GPU-crash correlation is now 6/6.
Update: user upgraded the AMD driver from 31.0.21924.61 (Dec 2025) to 31.0.21925.1001 (May 2026) - the crash still reproduces identically on the new driver. Controlled test: opened a Browser preview pane at 11:28:41 -> 'GPU process gone { reason: crashed, exitCode: 101457950 }' at 11:28:45 -> app hung -> package removed+reinstalled at 11:40. Correlation now 7/7, exit code identical across both driver versions, so this does not look driver-version-specific. Note: an unrelated GPU process exit (code 34) during the driver install was recovered gracefully, so the GPU-process restart path can work - it's specifically this crash (101457950) that wedges the app.
Root cause identified - this is the same bug as #81341 (MSIX CIG: MicrosoftSignedOnly GPU process rejects the Anthropic-signed vk_swiftshader.dll when the browser preview probes Vulkan; no CodeIntegrity.cat in the package). Verified on this machine: CodeIntegrity events 3033 (vk_swiftshader.dll signing level) + 3010 (CodeIntegrity.cat missing, 0xC000003A) at the exact second of every GPU crash, incl. two crashes today on 1.26832.0; exit code 101457950 = 0x060C201E matches. The uninstall loop documented here is the downstream consequence (package flips to NeedsRemediation, repair fails, updater removes it). Per #81341 the non-MSIX build is a confirmed workaround.