[BUG] Windows (MSIX): quit-for-update never completes; relaunched app hangs and is killed by Windows (AppHang)
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?
On Windows (MSIX build), an in-app update of Claude Desktop leaves the app hung and killed by
Windows. The update itself succeeds, but the quit-for-update sequence never finishes, and the
newly launched version freezes ~50 seconds later.
Sequence observed on 2026-07-14 (update 1.20186.1 -> 1.20186.9):
- 17:57:14 —
beforeQuitForUpdate handler fired, going down for update. No further quit lines
are ever written: none of onQuitCleanup, readyForQuit, beforeQuit, willQuit appear, unlike a
normal shutdown (a clean quit on 2026-07-09 logged all of them). The old process does not
finish quitting.
- 17:57:44 — Windows registers the new package successfully and moves the old package folder to
WindowsApps\Deleted\... Deleting app\icudtl.dat and app\v8_context_snapshot.bin from it fails
(error 0x12C) — exactly the files a live Chromium process keeps mapped, confirming the old
process was still alive at swap time.
- 17:57:45 — the new version launches ([updater] Version changed since last launch:
1.20186.1 -> 1.20186.9).
- 17:58:35 — Windows kills it: Application Hang (Event 1002), "The program claude.exe version
1.20186.9.0 stopped interacting with Windows and was closed." The user sees the "waiting for
the process to respond" dialog.
- 17:59:08 — manual relaunch works; the new version then runs normally.
So the app is unusable from the moment the update is applied until the user notices the frozen
window and restarts it by hand.
(Closest existing issues: #76224 is the same failure but was closed as invalid by a bot with
"please open a new issue if this is still relevant". #76357 and #75337 have a different outcome —
there the update fails and the app cannot launch at all, whereas here the update succeeds and the
relaunched app hangs.)
What Should Happen?
The quit-for-update sequence should actually complete — all cleanup handlers run, every
package-owned process exits and releases its file handles — before the MSIX package is
registered. The relaunched version should then start into a clean state instead of hanging and
being killed by Windows.
Error Messages/Logs
Name LastWriteTime Length
---- ------------- ------
main.log 7/14/2026 5:59:08 PM 396097
main1.log 7/12/2026 10:32:33 PM 10582798
main2.log 7/9/2026 8:05:42 PM 12733312
===== main.log =====
2026-07-14 17:59:09 [info] Starting blocklist update checks. Initial check will be triggered on first ConnectToServer.
2026-07-14 17:59:09 [info] Updated allowlist enabled state for org 072e8bd6-64a5-4fcb-b861-95626aef8500: false
2026-07-14 17:59:09 [info] Updated allowlist enabled state for org 072e8bd6-64a5-4fcb-b861-95626aef8500: false
2026-07-14 17:59:09 [info] Successfully updated blocklist
2026-07-14 17:59:09 [info] Successfully updated blocklist
2026-07-14 17:59:09 [info] Updated allowlist enabled state for org 072e8bd6-64a5-4fcb-b861-95626aef8500: false
2026-07-14 17:59:09 [info] Updated allowlist enabled state for org 072e8bd6-64a5-4fcb-b861-95626aef8500: false
2026-07-14 17:59:10 [info] Successfully updated blocklist
2026-07-14 17:59:10 [info] Successfully updated blocklist
2026-07-14 17:59:10 [info] [remote-tools-device] connecting DO bridge with: get_device_info, device_list_dir, device_stage_files, device_commit_files, list_artifacts, create_artifact, update_artifact, device_bash, project_memory_read, project_memory_write
2026-07-14 17:59:10 [info] [remote-tools-device] connecting DO bridge with: get_device_info, device_list_dir, device_stage_files, device_commit_files, list_artifacts, create_artifact, update_artifact, device_bash, project_memory_read, project_memory_write
2026-07-14 17:59:57 [info] LocalSessions.updateSession: sessionId=local_2d91a056-e84a-4ae1-9729-c8541dce97aa, options={"title":"Claude switch response hang","titleSource":"auto"}
2026-07-14 17:59:57 [info] LocalSessions.updateSession: sessionId=local_2d91a056-e84a-4ae1-9729-c8541dce97aa, options={"title":"Claude switch response hang","titleSource":"auto"}
2026-07-14 17:59:57 [info] Updated session local_2d91a056-e84a-4ae1-9729-c8541dce97aa: { title: 'Claude switch response hang', titleSource: 'auto' }
2026-07-14 17:59:57 [info] Updated session local_2d91a056-e84a-4ae1-9729-c8541dce97aa: { title: 'Claude switch response hang', titleSource: 'auto' }
===== main1.log =====
2026-07-12 21:36:21 [info] Successfully updated blocklist
2026-07-12 21:36:21 [info] Updated allowlist enabled state for org 072e8bd6-64a5-4fcb-b861-95626aef8500: false
2026-07-12 21:36:21 [info] Updated allowlist enabled state for org 072e8bd6-64a5-4fcb-b861-95626aef8500: false
2026-07-12 21:40:54 [info] LocalSessions.respondToToolPermission: requestId=7756132d-9fc8-4d3d-a35b-6c18dc4ed169, decision=once, hasUpdatedInput=true
2026-07-12 21:40:54 [info] LocalSessions.respondToToolPermission: requestId=7756132d-9fc8-4d3d-a35b-6c18dc4ed169, decision=once, hasUpdatedInput=true
2026-07-12 21:46:29 [info] [updater] Staged version 1.20186.1 is still current (latest: 1.20186.1, lastTarget: null)
2026-07-12 21:46:29 [info] [updater] Staged version 1.20186.1 is still current (latest: 1.20186.1, lastTarget: null)
2026-07-12 22:06:29 [info] [updater] Staged version 1.20186.1 is still current (latest: 1.20186.1, lastTarget: null)
2026-07-12 22:06:29 [info] [updater] Staged version 1.20186.1 is still current (latest: 1.20186.1, lastTarget: null)
2026-07-12 22:10:04 [info] LocalSessions.respondToToolPermission: requestId=8c4e711e-1f8c-4698-b38f-3d4d64a17680, decision=once, hasUpdatedInput=true
2026-07-12 22:10:04 [info] LocalSessions.respondToToolPermission: requestId=8c4e711e-1f8c-4698-b38f-3d4d64a17680, decision=once, hasUpdatedInput=true
2026-07-12 22:26:29 [info] [updater] Staged version 1.20186.1 is still current (latest: 1.20186.1, lastTarget: null)
2026-07-12 22:26:29 [info] [updater] Staged version 1.20186.1 is still current (latest: 1.20186.1, lastTarget: null)
2026-07-12 22:32:33 [info] beforeQuitForUpdate handler fired, going down for update
2026-07-12 22:32:33 [info] beforeQuitForUpdate handler fired, going down for update
===== main2.log =====
2026-07-09 20:05:42 [info] Successfully run onQuitCleanup: local-mcp-server-cleanup
2026-07-09 20:05:42 [info] Successfully run onQuitCleanup: remote-tools-device-cleanup
2026-07-09 20:05:42 [info] Successfully run onQuitCleanup: local-session-flush
2026-07-09 20:05:42 [info] Successfully run onQuitCleanup: remote-server-cleanup
2026-07-09 20:05:42 [info] Successfully run onQuitCleanup: direct-mcp-host-shutdown
2026-07-09 20:05:42 [info] Successfully run onQuitCleanup: webcontentsview-cleanup
2026-07-09 20:05:42 [info] Successfully run onQuitCleanup: local-session-stop-all
2026-07-09 20:05:42 [info] Successfully run onQuitCleanup: local-session-pty-cleanup
2026-07-09 20:05:42 [info] Successfully run onQuitCleanup: githubPollTelemetrySummary
2026-07-09 20:05:42 [info] Successfully run onQuitCleanup: flushEventQueue
2026-07-09 20:05:42 [info] Successully ran all onQuitCleanup handlers, marking readyForQuit
2026-07-09 20:05:42 [info] beforeQuit: handler fired, going down
2026-07-09 20:05:42 [info] beforeQuit: handler is ready for quit, so quitting
2026-07-09 20:05:42 [info] willQuit: handler fired, going down
2026-07-09 20:05:42 [info] willQuit: handler is ready for quit, so quitting
Steps to Reproduce
- Windows 11, Claude Desktop installed as MSIX (Microsoft Store build).
- Use the app normally, then accept the in-app update when it is offered (1.20186.1 -> 1.20186.9).
- The app quits for the update, the package is registered, and the new version relaunches on its own.
- Leave the relaunched window alone for ~1 minute.
- The window stops responding; Windows shows the "waiting for the process to respond" dialog and
closes the app. Relaunching by hand recovers it.
Claude Model
Other
Is this a regression?
I don't know
Last Working Version
1.20186.1
Claude Code Version
Claude Desktop 1.20186.9.0 (MSIX, pzs8sxrjxfjjc); bundled CLI 2.1.209
Platform
Other
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
_No response_