[macOS][OpenAI Developers] expired Platform connection leaves API-key setup without a working reauth path
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using (From “About Codex” dialog)?
ChatGPT/Codex desktop app 26.825.51511 (build 7377). The separately installed Homebrew Codex CLI was 0.136.0.
What subscription do you have?
Personal workspace; exact subscription tier omitted.
What platform is your computer?
Darwin 25.4.0 arm64 arm
What issue are you seeing?
Secure OpenAI Platform API-key setup through the OpenAI Developers plugin becomes a dead end when the connector authorization has expired:
- The secure key picker initially returned without displaying any UI or error.
- Retrying returned:
This app connection requires reauthentication before other actions on this app can succeed.The structured reason wasoauth_token_endpoint_unauthorized/Reauthentication required. - No actionable reconnect control appeared.
- Recovery guidance referenced
/appsand a$app picker. In the current desktop UI,/appsis treated as ordinary composer text, and the shown composer has a+control rather than a$app picker. There was no discoverable OpenAI Developers reconnect path.
This blocked a simple task: create a named development API key securely and configure a development environment. No key was created and no secret is included here.
What steps can reproduce the bug?
- Open Codex Desktop on macOS with OpenAI Developers installed and an expired OpenAI Platform connector authorization.
- Invoke the plugin's secure Codex API-key target-selection flow.
- Observe that the first attempt may return with no visible picker or error.
- Retry the flow.
- Observe the reauthentication-required error without a working reauthentication action.
- Try the documented/recommended
/appsroute in the desktop composer; it is treated as ordinary message text. - Look for the
$app picker; the current UI does not expose one.
What is the expected behavior?
The reauthentication error should surface a working Reconnect OpenAI Developers action. After successful authorization, Codex should automatically resume the interrupted key picker. App/connector management should have one consistent, discoverable path whose labels match the current desktop UI.
Additional information
The built-in /feedback flow recorded this report without diagnostic logs and returned thread ID 01a0609a-8383-7232-8af1-ecee1a793746, but still required manually opening a GitHub issue.
Related: #34787 reports a Windows-specific OpenAI Platform OAuth/key-setup loop. This report is macOS and focuses on the missing recovery control plus UI/documentation mismatch.
A separate follow-on occurred while trying an obvious terminal recovery: codex login does not repair plugin authorization, and macOS displayed “Malware Blocked and Moved to Trash” for the installed Codex CLI 0.136.0. Read-only inspection showed that Homebrew considered it outdated and that the remaining executable had a valid Developer ID signature from OpenAI OpCo, LLC (2DC432GLL2). No Gatekeeper/XProtect bypass was attempted. This may be unrelated, but it made the recovery experience materially worse and deserves triage.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the expired OpenAI Developers connector flow in Codex Desktop on macOS, focusing on the secure API-key picker and the current /apps and $ entry points. Trace the reauthentication error path and compare it with the desktop UI labels; done means a visible reconnect action resumes the interrupted picker after authorization.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, rust
- Domain
- api, authentication, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100