ChatGPT.app Codex relay returns 403 'invalid or disabled credential' after v26.715.31925 update
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Quiet
- Tech stack
- macos, rust
- Domain
- api, authentication, desktop
Research direction
Start by inspecting ~/.codex/config.toml and ~/.codex/auth.json, then compare their settings with the codex-rs/app-server/README.md guidance for ChatGPT OAuth. Trace the relay request entry point and determine whether the 403 comes from credential handling or the external relay; done means the incompatibility or required project change is clearly identified.
Written by the indexing model from the issue text.
Description
Summary
Codex inside ChatGPT Desktop App returns HTTP 403 "invalid or disabled credential" from the relay endpoint after updating to version 26.715.31925. The app shows "Reconnecting... 5/5" and never generates a response.
Environment
- App: ChatGPT Desktop App for macOS
- App version: 26.715.31925 (CFBundleVersion 5551)
- Codex Framework: 150.0.7871.124
- OS: macOS 26.5.2 (arm64)
- Auth mode: ChatGPT OAuth (
auth_mode: chatgpt) - Account: ChatGPT Pro
- ChatGPT web: works normally
Steps to reproduce
- Open ChatGPT.app (version 26.715.31925) on macOS.
- Switch to Codex mode or start a code-related conversation.
- Send any message.
- Observe the error bubble: "Reconnecting... 5/5" followed by the 403 error.
Expected behavior
Codex should process the request and generate a response using the ChatGPT OAuth session, the same way ChatGPT web conversations work.
Actual behavior
The relay endpoint https://chat-response.codex-openai.com/relay/responses returns:
unexpected status 403 Forbidden: {"error":"invalid or disabled credential"}
The app retries 5 times then shows the error. No response is generated.
Additional context
Config
The auto-generated ~/.codex/config.toml configures:
[model_providers.OpenAI]
name = "OpenAI"
base_url = "https://chat-response.codex-openai.com/relay"
wire_api = "responses"
requires_openai_auth = true
Auth
~/.codex/auth.json reports:
auth_mode: chatgpt(ChatGPT OAuth)OPENAI_API_KEY: [not set]- ChatGPT tokens present (id_token, access_token, refresh_token)
- Last refreshed: 2026-07-18T07:21:47Z (after app update)
Network diagnostics
- Domain
chat-response.codex-openai.comresolves, SSL certificate is valid. - Endpoint responds 401 without auth headers (expected).
- Domain is reachable both through proxy and direct connection.
chatgpt.com/backend-apiworks for web conversations.
What was tried
codex logout+codex login— CLI re-auth succeeds, Desktop relay still fails.- Full ChatGPT.app restart.
- Delete
~/.codex/auth.json+ cookies + re-login via app. - Complete reinstall of ChatGPT.app.
codex login --device-auth.- Proxy on/off — no change.
Suspected cause
The new Codex framework v150.0.7871.124 introduces chat-response.codex-openai.com/relay as the API base URL, replacing the previous chatgpt.com/backend-api/codex/responses path. The relay has requires_openai_auth = true but the active auth mode is chatgpt (ChatGPT OAuth). The relay endpoint appears to reject ChatGPT OAuth tokens — it recognizes the token format (returns 403, not 401) but marks the credential as "invalid or disabled". The official app-server README states that chatgpt (ChatGPT managed OAuth) is the recommended auth mode, suggesting the relay should accept ChatGPT OAuth tokens.
Related issues
- #9271 similar 403 from
chatgpt.com/backend-api/codex/responses - #18681 403 during Codex service outage
- #31882 Responses-Lite and auth mismatch for non-default providers
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
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.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·