Codex App Update Requires macOS 13? Recover on macOS 12

Codex App Update Requires macOS 13? Recover on macOS 12

Aident AI

Two luminous architecture paths route around an amber compatibility gate toward a stable cyan terminal.

Codex App Update Requires macOS 13? Recover on macOS 12

If a Codex or ChatGPT desktop update now says it requires macOS 13 or later, stop retrying the installer. Reports on August 5, 2026 show ChatGPT build 6223, version 26.730.61309, declaring macOS 13 as its minimum and failing on macOS Monterey 12.7.6. OpenAI's current requirements are stricter: the combined ChatGPT app that includes Codex officially requires macOS 14, and OpenAI says it will not release that app for older operating systems.

The durable choices are to upgrade macOS on supported hardware, use the Codex CLI on macOS 12, or use Codex on the web. A rollback should be temporary and should use only an OpenAI-hosted, correctly signed build that matches your Mac's architecture. Do not install an unverified mirror or disable Gatekeeper to make an old package run.

Confirm the Operating System, Architecture, and App Boundary

Run these read-only checks in Terminal:

sw_vers -productVersion
uname -m

defaults read "/Applications/ChatGPT.app/Contents/Info.plist" \
  CFBundleShortVersionString 2>/dev/null
defaults read "/Applications/ChatGPT.app/Contents/Info.plist" \
  CFBundleVersion 2>/dev/null
plutil -extract LSMinimumSystemVersion raw \
  "/Applications/ChatGPT.app/Contents/Info.plist" 2>/dev/null

Expected result for the reported failure:

  • sw_vers starts with 12..

  • uname -m returns x86_64 on an Intel Mac or arm64 on Apple silicon.

  • The updated app reports build 6223 or another build whose minimum system version exceeds your installed macOS version.

  • Launching it returns an incompatibility dialog or NSOSStatusErrorDomain Code=-10825.

If macOS already satisfies the app's declared minimum, this is not the Monterey compatibility failure. Check the code signature and app logs instead of downgrading.

Why Reinstalling the Same Update Cannot Work

A macOS executable records the oldest operating system it supports. The August 5 report for build 6223 found LC_BUILD_VERSION minos 13.0. macOS 12 rejects that binary before the application can migrate state, connect to Codex, or display its normal interface.

Changing permissions, clearing caches, or launching with sudo cannot lower the binary's minimum OS. Removing quarantine or ad-hoc signing the app only weakens its security checks. The package must support the installed OS, or the OS must be upgraded.

There is also a product boundary to account for. Since July 9, the new ChatGPT desktop app combines Chat, Work, and Codex. OpenAI's current help page lists macOS 14 as the supported minimum for that combined app. A prior build that happens to start on macOS 12 is therefore a short compatibility bridge, not a supported long-term release channel.

Choose the Safest Recovery Path

Your situation

Recommended path

Tradeoff

Your Mac supports macOS 14

Back up your work, update macOS, then install the current app

Restores the supported desktop path but requires an OS upgrade

You must remain on macOS 12

Use Codex CLI or Codex on the web

Keeps Codex available without the combined desktop app

You need the old desktop app briefly

Restore an OpenAI-hosted signed build after verifying it

Temporary and potentially behind on fixes

You only found a community mirror

Do not install it

The source and bytes are not established by the issue report

Do not erase ~/Library/Application Support, ~/.codex, or project worktrees as part of this recovery. The launch failure is an OS compatibility boundary, not evidence that your sessions or repositories are corrupt. If chats appear missing after an update, use the inventory-first steps in Recover Codex Chats After an Update.

Option 1: Use the Supported Codex CLI on macOS 12

The Codex CLI documents macOS 12 or later as its minimum. OpenAI's current standalone installer selects the correct native binary:

curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex --version
codex

Expected result: codex --version prints a CLI version, and codex opens the terminal interface and offers ChatGPT sign-in.

If you prefer a manual release asset, match the architecture exactly:

  • aarch64-apple-darwin for uname -m output arm64.

  • x86_64-apple-darwin for uname -m output x86_64.

The official Codex repository links both assets. Do not assume a 2020 Mac is Intel: Apple shipped both Intel and M1 models that year.

You can also use Codex at chatgpt.com/codex while deciding whether to upgrade the operating system.

Option 2: Verify an Official Previous Build Before Rollback

An August 5 issue comment recovered an older x86_64 package URL from the local updater history under persistent.oaistatic.com. The same thread also shows why copying a mirror link is unsafe and why architecture matters: an M1 user first downloaded the Intel build and only recovered after selecting the correct architecture.

Search your own updater caches and logs for an OpenAI-hosted URL:

rg -n 'https://persistent\.oaistatic\.com/[^ ]+\.(zip|dmg)' \
  "$HOME/Library/Caches/com.openai.codex" \
  "$HOME/Library/Logs/com.openai.codex" \
  "$HOME/Library/Caches/com.openai.chat" \
  "$HOME/Library/Logs/com.openai.chat" 2>/dev/null

Only continue if the exact URL starts with https://persistent.oaistatic.com/. If you cannot recover an official URL for the correct architecture, use the CLI or web path instead of guessing a filename or using a third-party mirror.

Download the recovered URL without opening it:

archive_url='PASTE_THE_EXACT_OPENAI_HOSTED_URL_HERE'

case "$archive_url" in
  https://persistent.oaistatic.com/*) ;;
  *) echo "Stop: this is not the expected OpenAI asset host" >&2; exit 1 ;;
esac

curl --fail --location --proto '=https' --tlsv1.2 \
  "$archive_url" \
  --output "$HOME/Downloads/ChatGPT-previous.zip"

Extract it into a new temporary directory:

candidate_dir="$(mktemp -d)"
ditto -x -k "$HOME/Downloads/ChatGPT-previous.zip" "$candidate_dir"
candidate_app="$candidate_dir/ChatGPT.app"

test -d "$candidate_app" || {
  echo "Stop: ChatGPT.app was not found in the archive" >&2
  exit 1
}

Now verify compatibility and provenance before moving anything:

uname -m
file "$candidate_app/Contents/MacOS/ChatGPT"
plutil -extract LSMinimumSystemVersion raw \
  "$candidate_app/Contents/Info.plist"

codesign --verify --deep --strict --verbose=2 "$candidate_app"
spctl --assess --type execute --verbose=2 "$candidate_app"

codesign -dv --verbose=4 "$candidate_app" 2>&1 \
  | sed -n '/Authority=/p;/TeamIdentifier=/p'
codesign -dv --verbose=4 "/Applications/ChatGPT.app" 2>&1 \
  | sed -n '/Authority=/p;/TeamIdentifier=/p'

Continue only when all of these are true:

  1. The candidate's LSMinimumSystemVersion is no newer than your installed macOS.

  2. Its executable contains your native architecture.

  3. codesign reports that the app is valid on disk and satisfies its designated requirement.

  4. spctl accepts it under the Mac's current policy.

  5. The candidate and your previously installed official app show the same signing authority and team identifier.

Apple notes that codesign verifies sealed contents and internal consistency, while spctl evaluates the Mac's current Gatekeeper policy. Neither check makes an arbitrary mirror trustworthy, which is why the asset host check comes first.

Back Up the Current App and Test the Candidate

Quit the app, move the incompatible bundle to a recoverable location, and copy in the verified candidate:

osascript -e 'quit app "ChatGPT"' 2>/dev/null || true

backup_app="$HOME/Desktop/ChatGPT-before-rollback-$(date +%Y%m%d-%H%M%S).app"
sudo mv "/Applications/ChatGPT.app" "$backup_app"
sudo ditto "$candidate_app" "/Applications/ChatGPT.app"

open "/Applications/ChatGPT.app"

Expected result: the app opens without the minimum-OS dialog. Confirm its version in the About dialog, then test one existing project without deleting or migrating any local state.

If the copy fails or the candidate does not launch, remove only the failed candidate and restore the backup:

sudo mv "/Applications/ChatGPT.app" \
  "$HOME/Desktop/ChatGPT-failed-candidate.app" 2>/dev/null || true
sudo mv "$backup_app" "/Applications/ChatGPT.app"

Do not disable Gatekeeper, clear quarantine attributes, or re-sign the app. Do not use undocumented preference writes as a permanent way to suppress updates. A rolled-back build can miss security and reliability fixes, so move to the CLI, web, or a supported OS and retire it promptly.

Common Failure Modes

The old build still says it is incompatible

Check LSMinimumSystemVersion. A version number alone does not prove Monterey support, and the archive may contain a different product generation than the one you expected.

The package is x86_64 but the Mac is arm64

Recover the official arm64 asset instead. Rosetta can run many Intel applications, but it does not make an Intel-only rollback the correct or lowest-risk package for Apple silicon.

Gatekeeper rejects the candidate

Stop. Redownload it from the exact OpenAI-hosted URL and repeat codesign and spctl. Do not solve a failed signature check with xattr, ad-hoc signing, or a mirror.

The app updates into the incompatible build again

Move to the CLI or web immediately. OpenAI's current requirements make clear that old operating systems will not receive a compatible combined app, so repeatedly pinning an old desktop build is not a durable fix.

Keep Connected Work Available From the CLI

If the desktop app was your path to external tools, Aident Loadout can keep authentication and Action discovery outside the app bundle. From the Codex CLI, install or update Aident by asking your agent to follow https://aident.ai/SETUP.md, then verify one read-only path:

aident account auth status
aident vault vault --action status
aident capabilities search \
  --query 'read-only Action for my current task' \
  --types action \
  --targetEnv staging

aident capabilities get --name '<exact-action-name>'
aident capabilities preflight \
  --name '<exact-action-name>' \
  --input '{}'

Inspect and preflight the exact Action before execution. Expected result: the CLI reports authenticated account and Vault state, then returns a reviewed Action contract without exposing provider credentials.

Ready to confirm the fallback works? Set up Aident Loadout and preflight one read-only Action.

Sources

Review this article when OpenAI changes the combined app's macOS requirements, issues 37002 or 37019 close with an official recovery path, Codex CLI drops macOS 12, or the documented Aident Loadout setup flow changes.

Home

Home

Home

Integrations

Integrations

Integrations

Vault

Vault

Vault

Audit

Audit

Audit

Arana Grande

Arana Grande

Arana Grande

Free

Free

Free

30-day audit summary

30-day audit summary

30-day audit summary

Daily action-call volume and the latest receipts from the Loadout audit trail.

Daily action-call volume and the latest receipts from the Loadout audit trail.

Daily action-call volume and the latest receipts from the Loadout audit trail.

View Audit

View Audit

View Audit

Loadout usage

Loadout usage

Loadout usage

617 action calls in the last 30 days

617 action calls in the last 30 days

617 action calls in the last 30 days

May 19 - Jun 17

May 19 - Jun 17

May 19 - Jun 17

10 active days

10 active days

10 active days

Less

Less

Less

More

More

More

Recent activity

Recent activity

Recent activity

Latest action-call receipts from connected agents

Latest action-call receipts from connected agents

Latest action-call receipts from connected agents

Apr 23, 09:23 AM

Apr 23, 09:23 AM

Apr 23, 09:23 AM

Shopify

Shopify

Shopify

Creates Or Updates An Asset For A Theme

Creates Or Updates An Asset For A Theme

Creates Or Updates An Asset For A Theme

Success

Success

Success

Apr 23, 09:21 AM

Apr 23, 09:21 AM

Apr 23, 09:21 AM

Shopify

Shopify

Shopify

Update Products Param Product Id

Update Products Param Product Id

Update Products Param Product Id

Success

Success

Success

Apr 23, 08:53 AM

Apr 23, 08:53 AM

Apr 23, 08:53 AM

Shopify

Shopify

Shopify

Update Products Param Product Id

Update Products Param Product Id

Update Products Param Product Id

Failed

Failed

Failed

Apr 22, 22:13 PM

Apr 22, 22:13 PM

Apr 22, 22:13 PM

Shopify

Shopify

Shopify

Create Product Image

Create Product Image

Create Product Image

Success

Success

Success

Apr 22, 22:12 PM

Apr 22, 22:12 PM

Apr 22, 22:12 PM

Shopify

Shopify

Shopify

Create Product Image

Create Product Image

Create Product Image

Success

Success

Success

Connected integration coverage

Connected integration coverage

Connected integration coverage

162

162

162

of 753 accessible connected

of 753 accessible connected

of 753 accessible connected

Callable actions

Callable actions

Callable actions

1,126

1,126

1,126

Vault credentials

Vault credentials

Vault credentials

8

8

8

Explore what's possible

Explore what's possible

Explore what's possible

See all Integrations

See all Integrations

See all Integrations

Google Ads

Google Ads

Google Ads

All available Goolge Ads tools via...

All available Goolge Ads tools via...

All available Goolge Ads tools via...

X (twitter)

X (twitter)

X (twitter)

All available X tools via...

All available X tools via...

All available X tools via...

Github

Github

Github

All available Github tools via...

All available Github tools via...

All available Github tools via...

Notion

Notion

Notion

All available Notion tools via...

All available Notion tools via...

All available Notion tools via...

Slack

Slack

Slack

All available Slack tools via...

All available Slack tools via...

All available Slack tools via...

Firecrawl

Firecrawl

Firecrawl

All available Firecrawl tools via...

All available Firecrawl tools via...

All available Firecrawl tools via...

753 integrations are available for loadouts.

753 integrations are available for loadouts.

753 integrations are available for loadouts.

The one tool

for every tool

your agent needs.

Give any AI agent real capabilities in seconds. Connect 1,000+ tools once, skip the setup headache, and let your agents execute.