Voice transcription push-to-talk (Space) fails with 403 Cloudflare challenge on /backend-api/transcribe

Resolved 💬 3 comments Opened Feb 28, 2026 by GGomesBRA Closed Feb 28, 2026

What version of Codex CLI is running?

codex-cli 0.106.0

What subscription do you have?

Logged in using ChatGPT (codex login status). Plan tier currently unknown.

Which model were you using?

gpt-5.3-codex

What platform is your computer?

Microsoft Windows NT 10.0.26200.0 x64

What terminal emulator and version are you using (if applicable)?

Windows Terminal + PowerShell

What issue are you seeing?

Holding Space for voice transcription in Codex CLI does not work.

Instead of transcribing audio, the voice path fails with HTTP 403 Forbidden and a Cloudflare challenge response on the transcription endpoint.

Redacted log excerpt:

2026-02-26T23:16:53.315370Z ERROR codex_tui::voice: voice transcription error:
transcription failed: 403 Forbidden <!DOCTYPE html><html ...>
... cUPMDTk:"/backend-api/transcribe?__cf_chl_tk=REDACTED" ...
... cf challenge page ...

Network check from the same machine:

curl -I https://chatgpt.com/backend-api/transcribe
HTTP/1.1 403 Forbidden
cf-mitigated: challenge

What steps can reproduce the bug?

  1. Run Codex CLI on Windows with voice transcription enabled.
  2. Start an interactive session.
  3. Press and hold Space to trigger push-to-talk.
  4. Release Space.
  5. Observe that transcription does not complete.
  6. Check ~/.codex/log/codex-tui.log and see voice transcription error: transcription failed: 403 Forbidden with Cloudflare challenge content referencing /backend-api/transcribe.

What is the expected behavior?

Holding Space should record audio and, on release, produce a transcription in the input box.

Additional information

  • voice_transcription = true is enabled in ~/.codex/config.toml.
  • Authentication appears valid (codex login status is logged in via ChatGPT).
  • No WinHTTP proxy is configured (netsh winhttp show proxy => direct access).
  • This appears to be network/WAF challenge behavior on /backend-api/transcribe, not a local keybinding detection issue.
  • I can provide additional redacted logs if needed.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗