Codex Desktop voice transcription blocked by Cloudflare challenge on /backend-api/transcribe after resolved incident

Resolved 💬 7 comments Opened May 10, 2026 by osipov-denis Closed May 16, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Description

Codex Desktop built-in voice transcription records audio, reaches the transcription stage, then fails with Unable to transcribe audio / Russian UI: Не удалось расшифровать аудио.

A Codex-like authenticated request to the first-party transcription endpoint is consistently blocked by Cloudflare before origin processing:

POST https://chatgpt.com/backend-api/transcribe
HTTP 403 Forbidden
server: cloudflare
cf-mitigated: challenge

This is still happening after the OpenAI status incident Elevated transcription failures affecting ChatGPT & Codex was marked resolved on May 8, 2026.

Environment

  • Codex Desktop App: 26.506.31421
  • Codex App build: 2620
  • Bundled CLI: codex-cli 0.130.0-alpha.5
  • OS: macOS 15.6.1, build 24G90
  • Auth mode: ChatGPT login present
  • Endpoint region from cf-ray suffix: DPS

Current diagnostic result

Fresh diagnostic on May 9, 2026 UTC:

{
  "ok": false,
  "status": 403,
  "statusText": "Forbidden",
  "headers": {
    "content-type": "text/html; charset=UTF-8",
    "cf-mitigated": "challenge",
    "cf-ray": "9f94bff4ac57c02e-DPS",
    "server": "cloudflare"
  }
}

Additional cf-ray values observed over repeated checks from the same Codex Desktop session across many hours:

9f907c565ba02dee-DPS
9f912c0bca2b2df9-DPS
9f91dc270c569185-DPS
9f928c1f2ee92df9-DPS
9f933bb9cefbc02e-DPS
9f93eb7fe8092df9-DPS
9f949b4cbe4f9185-DPS
9f94a7c619ba2dee-DPS
9f94bff4ac57c02e-DPS

What was ruled out

  • Not a generic microphone permission issue: Codex reaches the transcription stage and waveform/audio capture works.
  • Restarting Codex did not fix it.
  • Soft/hard clearing Electron cache, cookies, local storage, session storage, and related network state did not fix it.
  • Multiple networks/proxies were tested by the user and did not fix it.
  • App appears current: installed Codex version matches the latest downloaded build available from the production DMG at the time of testing.
  • The request reaches Cloudflare and is blocked before normal backend transcription handling.

Related public reports

This appears related to prior reports where Codex non-browser traffic is challenged by Cloudflare:

  • #13132: Voice transcription fails with 403 Cloudflare challenge on /backend-api/transcribe.
  • #12833: Similar /backend-api/transcribe Cloudflare challenge behavior.
  • #16052: Codex login/auth traffic blocked by Cloudflare challenge on another first-party endpoint.

The pattern looks like a WAF false positive for Codex Desktop/CLI authenticated non-browser HTTP traffic rather than a local recorder or audio encoding bug.

Expected behavior

Codex Desktop built-in voice transcription should be able to upload recorded audio/webm to /backend-api/transcribe and receive a transcription, or the first-party Codex client traffic should be allowlisted / routed in a way that does not receive a Cloudflare JS challenge it cannot solve.

Actual behavior

The endpoint returns a Cloudflare challenge page with 403 and cf-mitigated: challenge, so built-in voice transcription remains unusable.

Request

Please route this to the Codex Desktop / WAF configuration owners and check whether authenticated Codex Desktop traffic to chatgpt.com/backend-api/transcribe is being incorrectly challenged, especially for the DPS Cloudflare region.

If this is expected behavior or unsupported for ChatGPT-auth Codex Desktop sessions, please state that explicitly so users can stop waiting for automatic recovery.

View original on GitHub ↗

7 Comments

github-actions[bot] contributor · 2 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #21899
  • #21346
  • #20673
  • #21735

Powered by Codex Action

osipov-denis · 2 months ago

Follow-up: still reproducible after the May 8 status incident was marked resolved.

Fresh check at 2026-05-11T18:49Z from the affected macOS Codex Desktop install:

  • App: 26.506.31421, build 2620
  • Bundled CLI: 0.130.0-alpha.5
  • ChatGPT auth is valid; access token expiry is 2026-05-20T07:09:42Z
  • Native Codex Desktop-like request to https://chatgpt.com/backend-api/transcribe still returns:
  • HTTP 403 Forbidden
  • content-type: text/html; charset=UTF-8
  • cf-mitigated: challenge
  • cf-ray: 9fa35d5a7a4dc02e-DPS
  • server: cloudflare

Additional isolation that may help route this to the right owner:

  • The same tiny audio/webm test sent with a browser-like User-Agent and normal multipart body returned HTTP 200 with content-type: application/json from the same Cloudflare edge.
  • The Codex Desktop-like request path is what triggers the managed challenge.
  • This is therefore not microphone capture, local audio encoding, stale login, or general account/network failure. It looks like the first-party Codex Desktop transcription HTTP fingerprint/header/path is being challenged by Cloudflare before transcription runs.

This also lines up with related Cloudflare challenge reports on non-browser Codex requests, for example #12804, #12833, #21899, #21346, and #20673.

Could this be routed to the Codex Desktop + chatgpt.com WAF/backend owner? A local reinstall or network change does not appear able to fix it while the official client request continues to receive cf-mitigated: challenge.

osipov-denis · 2 months ago

Additional account-level A/B evidence collected on 2026-05-13:

  • Same affected ChatGPT/Codex account was tested on a second MacBook Air M4.
  • Codex App on that Mac: 26.506.31421, build 2620, bundle com.openai.codex.
  • macOS on that Mac: 26.4.1 build 25E253, Apple Silicon arm64.
  • Under the affected account: Codex built-in voice transcription fails.
  • Local Codex log on that second Mac showed:
[Composer] dictation failed errorMessage="{\"detail\":\"No active organization found\"}"
  • Under the laptop owner's separate ChatGPT/Codex account on the same Mac / same Codex install / same environment: Codex built-in voice transcription works.
  • Regular text Codex works under the affected account.

This now looks account/org/workspace-specific rather than device, microphone, network, local cache, or installation-specific. Please check active organization/workspace routing or entitlement state for Codex Desktop transcription for the affected account, specifically the path used by POST https://chatgpt.com/backend-api/transcribe with originator=codex_desktop.

Latest safe diagnostic from the original affected Mac is still Cloudflare challenge on the transcribe path:

2026-05-13T08:07Z
HTTP/2 403
content-type: text/html; charset=UTF-8
cf-mitigated: challenge
server: cloudflare
cf-ray: 9fb02b8508eb2df8-DPS
osipov-denis · 2 months ago

Additional UI-level account/org evidence:

When using the affected account in the ChatGPT/Codex account/workspace switcher, attempting to switch/select the checked personal account/workspace shows this error:

No personal org found for user and none created.

This matches the second-Mac Codex log from the affected account:

[Composer] dictation failed errorMessage="{\"detail\":\"No active organization found\"}"

Given that a separate account works on the same second Mac / same Codex install, this strongly indicates the affected account is missing or failing to create/resolve its personal org/workspace on the backend. Please check/repair the personal org / active org state for this account, especially for Codex Desktop transcription routing.

osipov-denis · 2 months ago

Resolved / recovery note for future readers:

This turned out not to be a local microphone, macOS permission, network, or Codex installation issue.

Useful evidence gathered:

  • The affected account failed on the original Mac and also on a second Mac.
  • A different account worked on that same second Mac / same Codex install / same environment.
  • The affected account showed account/org-related errors:
[Composer] dictation failed errorMessage="{\"detail\":\"No active organization found\"}"

and in the ChatGPT/Codex account/workspace switcher:

No personal org found for user and none created.

The practical fix was to repair/refresh the affected account's organization state rather than reinstalling Codex:

  1. Open the OpenAI Platform organization settings for the affected account.
  2. Check/complete/clear any account, organization, verification, billing, or workspace blockers shown there.
  3. Return to ChatGPT/Codex and verify that the account/workspace switcher no longer shows the personal-org error.
  4. Fully re-authenticate / relogin in Codex Desktop.
  5. Restart Codex Desktop and test built-in voice again.

After refreshing the account/org state and reauthorizing Codex, built-in Codex voice transcription started working again for the affected account.

Important note: shell/curl diagnostics against https://chatgpt.com/backend-api/transcribe may still return Cloudflare 403 cf-mitigated: challenge and should not be treated as the source of truth once the real Codex UI works. The real signal is whether native voice works inside Codex Desktop after the account/org state is repaired.

Suggested takeaway: if Codex Desktop voice fails with No active organization found or the UI shows No personal org found for user and none created, check the user's account/org/workspace state on the OpenAI Platform side before reinstalling Codex or debugging the microphone/network.

grantusmaximus · 2 months ago

I’m seeing the same issue on Windows Codex Desktop OpenAI.Codex_26.513.4821.0.

Dictation fails with “Unable to transcribe audio”. Local Codex logs show /backend-api/transcribe returning a Cloudflare HTML challenge page instead of a transcription response.

Windows microphone permissions and audio services/devices look healthy, so this appears to be the same Cloudflare/WAF challenge problem rather than a local microphone issue.

UlaK-ux · 2 months ago

Just do a quick relog. Try logging out and back in properly.
Had the same issue before — just logged out, re-logged via ChatGPT, and it was good to go.