[Windows] Codex/ChatGPT desktop MSIX auto-updater loops forever — new build downloads but never deploys; app also launches into a permanently-suspended process

Open 💬 4 comments Opened Aug 16, 2026 by lwz20210407
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Summary

On Windows 11, the Codex/ChatGPT desktop app (MSIX, OpenAI.Codex) is stuck in an endless update loop: the in-app updater reports a newer build, downloads it successfully, but the install/deploy never completes — the registered package version never advances. Separately (and compounding it), every launch produces a ChatGPT.exe process that is created suspended and never resumed, so no window ever appears until the process is manually resumed.

Likely related to #27377 and #25770.

Environment

  • Windows 11 Pro (build 26200)
  • Package: OpenAI.Codex_2p2nqsd0c76g0 (Store-signed, SignatureKind=Store), Store ID 9PLM9XGG6VKS
  • Installed build: 26.803.10989.0; updater-advertised build: 26.810.7004.0

Symptom (user-visible)

Sidebar shows a blue Update button. Clicking it → "Installing update — ChatGPT will restart when installation finishes / Preparing…", progress bar reaches ~50%, then the app closes. It never reopens on its own; reopening later still shows the same download/Update prompt. The loop repeats indefinitely.

Evidence 1 — check & download succeed, deploy never happens

Desktop log:

[windows-store-updater] Checking Windows Store for package updates buildVersion=26.803.10989.0 manifestBuildVersion=26.810.7004.0 packageIdentity=OpenAI.Codex
[windows-store-updater] ... completed canSilentlyDownload=true completed=true hasUpdate=true overallState=Completed
[sparkle] ... action=download_completed ... result=succeeded

But Microsoft-Windows-AppXDeploymentServer/Operational over 2 days contains zero deployment operations for 26.810.7004.0. Instead it repeatedly runs, on the old 26.803 build:

RegisterByPackageFullName ... options ForceTargetApplicationShutdownOption,RepairAppRegistrationOption
Register operation: Trying to repair ACLs for ...\OpenAI.Codex_26.803.10989.0_x64__2p2nqsd0c76g0
Register operation: ACLs repaired successfully ... Register next time
Deployment Register operation ... completed successfully   (still 26.803)

→ the system keeps repairing / re-registering the old build; the new build is never staged or registered.

Evidence 2 — the new build is NOT on the public Store, so it can only come from the app's own updater

winget list  --name OpenAI      -> ChatGPT  9PLM9XGG6VKS  26.803.10989.0  msstore
winget upgrade --id 9PLM9XGG6VKS -> "No available upgrade found. No newer package version available in the configured sources."

A forced Windows Store update scan (MDM_EnterpriseModernAppManagement_AppManagement01 -> UpdateScanMethod, ReturnValue=0) also deploys nothing. So 26.810 is served only through the app's own updater feed (ahead of the public Store's 26.803). This means the broken component is the app's own MSIX self-update path (windows-msix-updater), and end users cannot work around it via a Store / winget reinstall.

Evidence 3 — launches into a permanently-suspended process (compounds the loop)

After launch, exactly one ChatGPT.exe: ~2–4 MB, 1 thread, ThreadState=Wait / WaitReason=Suspended, MainWindowHandle=0, no log lines written, userData untouched — i.e. it never executed any app code. Calling NtResumeProcess on it immediately brings it to life (→ ~380 MB, 64 threads, spawns the full Electron child tree, window appears). So the process is created suspended by activation and the resume step never fires. This happens especially right after an update-triggered restart, which is likely why the post-install relaunch never completes and the update can't finalize.

Evidence 4 — earlier occurrence matching #25770 (locked old package)

A prior update left activation failing with 0x80070020 ERROR_SHARING_VIOLATION at "create Desktop AppX container / configuring runtime" (Microsoft-Windows-AppModel-Runtime/Admin Id 208 / 215). The package's Helium hive ...\OpenAI.Codex_2p2nqsd0c76g0\SystemAppData\Helium\User.dat was locked; Restart Manager reported the holders as System (PID 4) + Registry (PID 472) (RmCritical) — i.e. a stale mounted registry hive inside an orphaned per-package Server Silo. Re-register, AppXSvc restart, and app "Reset" did not clear it; only a reboot / sign-out did.

Impact

The update can never complete; the app is unusable after each attempt until the suspended process is manually resumed; users are ultimately forced to reboot.

Likely root cause (hypothesis)

The self-updater applies the new MSIX while the old instance can't cleanly shut down / relaunch (the suspended-launch bug in Evidence 3), so the deploy aborts and Windows rolls back to repairing the current build. The orphaned per-package container / hive state (Evidence 4) further blocks a clean re-deploy.

Suggested fixes

  • Apply the self-update fully offline — defer to the next clean launch after a full shutdown — rather than swapping the package under a live / relaunching instance.
  • Detect the "created-but-never-resumed" state (or the 0x80070020 container-activation failure) and surface a clear "please restart Windows to finish updating" message instead of silently looping.
  • Add a watchdog for the suspended / never-resumed main process so it can self-recover or report.

Related

  • #27377 — update stuck after "Update downloading", version mismatch
  • #25770 — old MSIX package locked in use / mounted Helium hives
  • #23053 — update prompt should show target versions / component diff

View original on GitHub ↗

4 Comments

github-actions[bot] contributor · 12 days ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #38758

Powered by Codex Action

MilkyWay008 · 11 days ago

Saw the 0x80070020 sharing violation you hit, that's the Helium registry hive (User.dat) still being held by an orphaned package Server Silo, which is why the new build never actually deploys. What usually clears it: reboot once to release the hive, then install the .msix that Sparkle already staged via Add-AppxPackage, and taskkill the suspended ChatGPT.exe so it stops blocking. Store reinstall won't help since the new build only ships through the app's own feed, so doing it manually is the reliable path. Oh, btw, in case it might help that, I built a portable Hermes OTG repo, check it, imo it may be able to help you diagnose and figure out the fix in no time. https://github.com/MilkyWay008/Hermes-OTG

maxtalwar · 7 days ago

I reproduced the updater half of this failure on another Windows system with Codex Desktop 26.814.5517.0.

Sanitized evidence:

  • The in-app updater detected manifest build 26.818.2441.0.
  • Codex logged: completed=true hasUpdate=true overallState=Completed.
  • Microsoft-Windows-AppXDeploymentServer/Operational recorded that staging OpenAI.Codex_26.818.2441.0_x64 finished successfully.
  • Microsoft Store telemetry for the update recorded StageButDoNotInstall=1 and AllowForcedAppRestart=0.
  • The staged manifest exists, but Get-AppxPackage OpenAI.Codex still reports the current user's registered version as 26.814.5517.0.
  • Store, AppX Deployment, InstallService, and StateRepository services are healthy; the package status is Ok; no Windows Update or CBS reboot is pending.
  • Clicking Update says the app will reopen, but it closes without completing the registration/activation handoff or reopening.

A separate external watchdog that fully terminates the package process tree, waits, and activates shell:AppsFolder\OpenAI.Codex_2p2nqsd0c76g0!App can reliably restart the app. That suggests the fragile point is the self-exit/post-update activation path rather than package download or staging.

No screenshots, raw logs, usernames, machine names, SIDs, or local paths are included here.

sunnyspot114514 · 3 days ago

Same updater loop on Windows 10. Sharing a more recent version pair in case it helps.

Environment

  • Windows 10 Pro 10.0.19045 x64
  • Microsoft Store package: OpenAI.Codex_26.818.5229.0_x64__2p2nqsd0c76g0
  • Store ID: 9PLM9XGG6VKS
  • Package status: Ok

Symptom
In-app Update button appears. Clicking it shows install/restart progress, then the app closes. Relaunch still shows the same update. This repeated several times in one afternoon.

Evidence
Installed package stays at 26.818.5229.0.

Desktop log:
[windows-store-updater] Checking Windows Store for package updates buildVersion=26.818.5229.0 manifestBuildVersion=26.818.8289.0 packageIdentity=OpenAI.Codex
[windows-store-updater] Windows Store package update check completed canSilentlyDownload=true completed=true hasUpdate=true overallState=Completed
[sparkle] Production Sparkle update event action=download_completed result=succeeded

Microsoft Store / winget have no newer package:
winget upgrade --id 9PLM9XGG6VKS
-> No available upgrade found. No newer package version available in the configured sources.

AppX deployment logs had no Stage/Register for 26.818.8289.0.

Timeline

  • Previous evening: updater checked manifestBuildVersion=26.818.5345.0 and reported hasUpdate=false / overallState=NoUpdates.
  • Next afternoon: manifest jumped to 26.818.8289.0 and the download-completed / never-installed loop started.

This machine does not show the suspended-process launch failure from the original report. The updater half matches: OpenAI feed is ahead of Store, download is marked complete, package never registers, clicking Update only exits the app.