Voice transcription fails with 403 (Cloudflare HTML challenge) and silently drops transcript
Resolved 💬 7 comments Opened Feb 25, 2026 by etechlead Closed Feb 26, 2026
💡 Likely answer: A maintainer (Kbediako, contributor)
responded on this thread — see the highlighted reply below.
What version of Codex CLI is running?
0.105.0
What subscription do you have?
ChatGPT Pro
Which model were you using?
gpt-5.3-codex xhigh
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What terminal emulator and version are you using (if applicable)?
Powershell
What issue are you seeing?
Voice transcription results in getting the Cloudflare challenge page
.codex/log/codex-tui.log:
2026-02-25T18:24:43.334278Z ERROR codex_tui::voice: voice transcription error: transcription failed: 403 Forbidden <!DOCTYPE html>...
<img width="546" height="833" alt="Image" src="https://github.com/user-attachments/assets/aca2f7f2-d5cc-40a0-8540-36dc1a751e41" />
Every other thing works:
- other Codex CLI features
- ChatGPT in the browser
- Codex App from the same outgoing IP
What steps can reproduce the bug?
- hold space to record
- speak, see the recording animation
- release space, animation stopped
- FAILURE 1 -> no text is inserted, textbox is cleared
- FAILURE 2 -> no error message is shown
What is the expected behavior?
_No response_
Additional information
_No response_
7 Comments
wish there was a feature that allowed us to see where theyre at with bugs in real time.. lol
I can confirm this is still reproducible on Windows 11 with
codex-cli 0.105.0using ChatGPT login.What I observed on February 26, 2026:
voice_transcription = trueis enabled, and Windows privacy settings confirm Codex accessed the microphone.codex logout->codex login) and a fresh session did not fix it.ERROR codex_tui::voice: voice transcription error: transcription failed: 403 Forbidden/backend-api/transcribeonchatgpt.com.This looks like a backend/challenge-path failure rather than a local mic permission or keybinding issue.
This feature is still under development and is not ready for use. We'll mark it as "experimental" when it's ready for use.
@etraut-openai What's the reasoning behind merging it into
mainand causing countless people waste hours trying to get it to work?It was listed as a new feature in the Release Notes. Well, I'm WSL anyway....
I’ve run a fairly exhaustive set of local diagnostics to rule out the usual suspects (mic permissions, FFmpeg, local STT, etc.), and I’m now confident this isn’t a “my machine” issue.
Environment
codex login status→ “Logged in using ChatGPT”).Local STT verification (to rule out “Whisper is broken”)
whisper test.wav --model baseCodex voice feature status and observed behavior
voice_transcriptionis enabled and the in-app voice UI indicator works (visualizer/equalizer reacts), but no transcript is inserted into the prompt.Attempts to “fix” transcription using Codex flags / modes
--voice-transcription-fp16 falsecodex execmode:codex exec -- "Record my voice"(or equivalent)--dangerously-bypass-approvals-and-sandboxAudio layer and Windows permissions checks
mfplat.dllexists inSystem32(file present).ffmpeg -versionsucceeds; FFmpeg 7.1 is installed and available in PATH.Temp / file-system observations (initial hypothesis)
%TEMP%during/after voice attempts..tmpfiles (0 bytes), no obvious WAV artifacts.Encoding check (sanity check)
US-ASCII.Logging and the decisive diagnostic signal
RUST_LOGto includecodex_core=trace,codex_tui=trace, andcodex_tui::voice=trace.%USERPROFILE%\.codex\log\codex-tui.log.ERROR codex_tui::voice: voice transcription error: transcription failed: 403 Forbidden ...<!DOCTYPE html> ... <title>Just a moment...</title> ...Key diagnostic signatures to search for
codex-tui.log:codex_tui::voicetranscription failed: 403 Forbidden<!DOCTYPE html>Just a moment...Main conclusion (what is actually broken)
403 Forbiddenresponses with HTML content (Just a moment...) logged bycodex_tui::voice.The decisive signal is in the logs: voice transcription repeatedly fails with
403 Forbiddenand returns an HTML page containing Cloudflare challenge content (e.g.<!DOCTYPE html>and<title>Just a moment...</title>). In other words, the transcription request is being blocked upstream, and the feature fails silently in the UI.Given this, I have a broader question about release communication: if voice transcription in the TUI is not reliably usable yet (at least for ChatGPT-auth users), why is it presented in the release notes as a shipped feature? Even a short note like “may fail under ChatGPT login due to upstream protection / 403” would save others from spending hours running local diagnostics like I did.
Update: still broken on 0.107.0 (stable)
codex --version: 0.107.0codex login status: Logged in using ChatGPTRUST_LOGincludingcodex_tui::voice=trace,codex-tui.logstill shows repeated errors like:transcription failed: 403 Forbiddenwith a Cloudflare “Just a moment…” HTML challenge (truncated).