ChatGPT.app Codex relay returns 403 'invalid or disabled credential' after v26.715.31925 update
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
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗