Codex desktop app keeps re-downloading update after restart

Open 💬 2 comments Opened May 14, 2026 by hacksurvivor

What version of the Codex App are you using (From "About Codex" dialog)?

26.506.31421, build 2620

What subscription do you have?

ChatGPT Pro ($200/month)

What platform is your computer?

macOS 26.4.1 (Build 25E253), Apple Silicon / arm64

What issue are you seeing?

I am trying to update the Codex desktop app to the latest version from the in-app update prompt. When I press Update, Codex quits as expected, but after I open Codex again it starts downloading the same update again. The update does not appear to persist, so the app is stuck in an endless update/download loop.

This is the desktop app updater flow, not the CLI codex update / npm updater flow.

Related but not exact duplicates:

  • #19396 reports a macOS Sparkle helper timeout/error during the updater flow.
  • #12107 and #21897 are CLI/npm updater loops or install-target issues.

In this case, the visible behavior is:

  1. Codex shows that an update is available.
  2. I press Update.
  3. The Codex app quits.
  4. I reopen Codex.
  5. Codex downloads the update again.
  6. Repeating the flow leads back to the same update download every time.

What steps can reproduce the bug?

  1. Open the Codex desktop app on macOS.
  2. Wait for the in-app update prompt.
  3. Click Update.
  4. Let Codex quit.
  5. Reopen Codex.
  6. Observe that the app downloads the update again instead of staying updated.

What is the expected behavior?

After pressing Update, Codex should install the downloaded update, relaunch or allow the user to reopen the updated app, and stop prompting/downloading the same update again.

Additional information

The loop is especially disruptive because it happens on a paid Pro account and prevents normal use of the latest desktop app. If there is a log bundle or updater diagnostics path maintainers want, I can collect it.

View original on GitHub ↗

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