[app][Windows][26.721.4979.0] New realtime voice chat times out with unmaterialized provisional thread
Summary
On the Windows desktop app, starting a new realtime voice chat repeatedly times out while the provisional voice thread is still unmaterialized.
The app-server accepts thread/realtime/start, but Desktop receives realtime_session_started with realtimeSessionId=null. At the same time, Desktop attempts to hydrate the empty provisional thread with includeTurns, receives -32600 because the thread has no first user message, times out the voice overlay, and then fails to discard/archive the provisional thread.
Environment
- App package:
OpenAI.Codex 26.721.4979.0(Windows Store) - Bundled app-server:
0.146.0-alpha.3.1 - Platform: Windows 11 Pro 23H2, x64, build
22631.6199 - Authentication: ChatGPT
- Subscription: Enterprise; realtime voice is enabled and worked earlier the same day
Steps to reproduce
- Fully exit and reopen the Windows desktop app.
- Open a new, empty task.
- Select Start new voice chat before sending a message.
- Wait for the voice overlay to start.
Actual behavior
The overlay waits and then reports:
Voice chat took too long to start
Multiple attempts produce the same sequence. A representative sanitized timeline (UTC) is:
21:27:42.742 thread/realtime/start accepted
21:27:43.223 thread/read -> -32600:
"thread <id> is not materialized yet;
includeTurns is unavailable before first user message"
21:27:44.950 realtime_session_started realtimeSessionId=null
21:27:45.258 Voice chat took too long to start
21:27:45.513 Inactive thread archive did not persist
21:27:45.514 Failed to discard provisional realtime voice thread
A subsequent attempt again emitted realtime_session_started with a null session ID.
Expected behavior
The provisional voice task should materialize without an invalid includeTurns read, receive a valid rtc_... session ID, and open the realtime voice conversation. If startup fails, the provisional task should still be cleaned up successfully.
Regression evidence
Earlier the same day, package 26.721.3996.0 successfully emitted:
realtime_session_updated realtimeSessionId=rtc_...
and realtime voice worked. The startup failures began after moving to package 26.721.4979.0.
What was ruled out
- Windows microphone access is allowed globally and for
OpenAI.Codex. - Windows recorded Codex microphone use during the failed attempt.
AudiosrvandAudioEndpointBuilderwere running.- Voice discovery (
thread/realtime/listVoices) returned successfully. - TCP 443 connectivity to
chatgpt.comandapi.openai.comsucceeded. - The failure sequence occurs before a valid realtime session ID or a WebRTC connection-failure event.
Relevant launch context
The captured reproduction used a separate launcher with this Chromium transport preference:
--force-webrtc-ip-handling-policy=disable_non_proxied_udp
No other debug/logging flags remained. The same preference successfully started realtime voice on the earlier package. The current failure appears to happen in provisional-thread/session startup before WebRTC transport establishment, but this non-default launch argument is included here for completeness.
Related issues
- #35201 covers WebRTC failure cleanup after a session has started.
- #33120 covers archive failures for unmaterialized tasks.
- #35103 covers voice-thread lifecycle behavior after inactivity timeout.
I did not find an existing issue combining Windows realtime-voice startup timeout, an unmaterialized provisional task, a null realtime session ID, and failed provisional-task cleanup.
4 Comments
Also seeing this on macOS, with a related but slightly different sequence.
26.721.41059(5848)0.146.0-alpha.3.126.5.1(25F80), arm64Starting a new voice chat from an empty task reports
Voice chat took too long to start. After returning to the main Codex UI, clicking that newly created voice task in the sidebar reportsthread not found.Local logs show:
The allegedly missing task still exists unarchived in
state_5.sqlite, and its rollout file exists on disk. A second voice-chat creation attempt also received201 Createdwith a validrtc_...session ID.So unlike the original Windows report, the realtime session ID is non-null and backend startup succeeds. Desktop appears to time out or lose provisional task/session state afterward, then closes the working session. The resulting task remains present locally but cannot be reopened from the sidebar.
me to, But this looks like a server-side issue
Update: the macOS realtime voice flow is working normally for me again now, including starting a new voice chat and carrying on a live conversation. This appears to be resolved on my end.
I can reproduce the Windows Codex voice/dictation failure on package
26.721.11231.0after enabling microphone access. Realtime voice still fails during provisional-thread startup withno rollout foundandPermission denied by system, while dictation reports microphone permission denied. Please confirm whether this is a known Windows MSIX capability or regression, and whether a fix is available.