macOS: Codex → ChatGPT.app migration leaves unified app missing from Launchpad
What version of the Codex App are you using?
ChatGPT/Codex 26.707.31428 (build 5059)
What subscription do you have?
Not relevant to this local macOS app-migration issue.
What platform is your computer?
macOS 15.7.1 (build 24G231), Apple Silicon.
What issue are you seeing?
After the Codex desktop app migrated from Codex.app to the unified /Applications/ChatGPT.app, the new app does not appear in macOS Launchpad.
The migration left two applications with the same display name but different bundle identifiers:
/Applications/ChatGPT.app
CFBundleDisplayName: ChatGPT
CFBundleName: ChatGPT
CFBundleIdentifier: com.openai.codex
CFBundleShortVersionString: 26.707.31428
CFBundleVersion: 5059
/Applications/ChatGPT Classic.app
CFBundleDisplayName: ChatGPT
CFBundleName: ChatGPT
CFBundleIdentifier: com.openai.chat
CFBundleShortVersionString: 1.2026.160
Finder, Spotlight, and LaunchServices all recognize both application bundles. In particular, mdls /Applications/ChatGPT.app reports:
kMDItemCFBundleIdentifier = "com.openai.codex"
kMDItemContentType = "com.apple.application-bundle"
kMDItemDisplayName = "ChatGPT"
However, the per-user Launchpad database contains two rows associated with the old ChatGPT bundle identifier and no row for com.openai.codex:
item_id title bundleid
90 ChatGPT Classic com.openai.chat
178 ChatGPT com.openai.chat
Query used, against the current user's com.apple.dock.launchpad/db/db:
SELECT item_id, title, bundleid
FROM apps
WHERE lower(title) LIKE '%chatgpt%'
OR lower(bundleid) LIKE '%openai%'
OR lower(title) LIKE '%codex%';
There is no com.openai.codex Launchpad row, so the unified ChatGPT/Codex app remains missing from Launchpad even though Spotlight and LaunchServices resolve it correctly.
What steps can reproduce the bug?
- Start with the standalone Codex desktop app and the existing ChatGPT desktop app on macOS.
- Accept the July 2026 Codex-to-ChatGPT desktop migration/update.
- Observe the resulting applications:
/Applications/ChatGPT.appwith bundle IDcom.openai.codex./Applications/ChatGPT Classic.appwith bundle IDcom.openai.chat.
- Open Launchpad and search for ChatGPT.
- Observe that the new unified ChatGPT/Codex app is not present.
- Verify that Spotlight and LaunchServices do recognize
/Applications/ChatGPT.app. - Inspect the Launchpad
appstable and observe that theChatGPTrow is incorrectly associated withcom.openai.chat, with nocom.openai.codexrow.
Troubleshooting already attempted
The following did not update the Launchpad row:
- Re-enabled and rebuilt Spotlight indexing for
/and/System/Volumes/Data. - Verified that
mdlsresolves/Applications/ChatGPT.appascom.openai.codex. - Unregistered and re-registered both app bundles with
lsregister. - Registered
/Applications/ChatGPT.appexplicitly withlsregister -f. - Imported
/Applications/ChatGPT.appwithmdimport -i. - Restarted Dock multiple times.
- Verified that the new app is signed correctly and accepted by Gatekeeper.
The Launchpad database was not deleted because doing so resets all user Launchpad folders and icon ordering.
What is the expected behavior?
The Codex-to-ChatGPT migration should preserve Launchpad visibility and correctly register the unified app as:
ChatGPT -> com.openai.codex -> /Applications/ChatGPT.app
The migration should also avoid confusing the new unified app with ChatGPT Classic.app, despite both bundles currently having CFBundleDisplayName=ChatGPT.
Additional information
This appears related to the current Codex-to-ChatGPT migration but is distinct from:
- #31866 — self-update removes
Codex.appand leaves stale Dock state. - #31944 —
codex appignoresChatGPT.appand creates a duplicateCodex.app. - #31961 — Notification Center retains the old
Codex.apppath. - #24072 — an older LaunchServices runtime-registration failure involving
com.openai.codex.
Those issues do not report the Launchpad database mapping the new app title to com.openai.chat while omitting com.openai.codex.
Posted at the affected user's direction after the local database state and attempted fixes were verified.