Codex Desktop dictation /transcribe 401 with ChatGPT login and Azure provider
Summary
Codex Desktop voice dictation fails with the toast: "Unable to transcribe audio".
The failure occurs while using Codex Desktop logged in with ChatGPT, with the active model provider configured as Azure OpenAI. Azure model calls continue to work; only dictation/transcription fails.
Environment
- Product: Codex Desktop for macOS
- App version observed locally: 26.609.30741 / 0.140.0-alpha.2
- Auth:
codex login statusreportsLogged in using ChatGPT - Active model provider: Azure OpenAI via
model_provider = "azure" - Azure endpoint/model calls continue to work
Steps to reproduce
- Configure Codex Desktop/CLI with an Azure OpenAI model provider.
- Sign in to ChatGPT successfully with
codex login --device-auth. - Confirm
codex login statussaysLogged in using ChatGPT. - In Codex Desktop, use voice dictation from the composer or global dictation.
- Stop recording and wait for transcription.
Expected behavior
Codex Desktop should attach the ChatGPT bearer token to the ChatGPT dictation/transcription request and return a transcript.
Actual behavior
Dictation fails with "Unable to transcribe audio".
Observed app logs show the transcription request receives a 401:
POST https://chatgpt.com/backend-api/transcribe -> 401
[electron-fetch-wrapper] desktop_fetch_auth_401 hadToken=false skipRetryReason=no_token_attached target="POST https://chatgpt.com/backend-api/:param" tokenSource=loaded willRetry=false
The important part is tokenSource=loaded but hadToken=false, so the desktop auth bridge appears to be returning/using an empty token for ChatGPT backend requests even though the local ChatGPT login is valid.
Troubleshooting already tried
- Re-ran ChatGPT device auth login successfully.
- Confirmed
codex login statusreports ChatGPT login. - Reset/re-granted macOS microphone and speech recognition permissions.
- Restarted Codex Desktop.
- Confirmed Azure model calls still go to the Azure endpoint and are unrelated to the dictation failure.
Local workaround that confirmed the likely cause
A local patch to the Codex Desktop auth bridge fixed dictation by falling back to ~/.codex/auth.json tokens.access_token when the app-server returns an empty token for ChatGPT backend requests.
This suggests the bug is in Codex Desktop's token attachment/auth bridge for ChatGPT backend endpoints such as /backend-api/transcribe, especially when the active model provider is Azure.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗