[Windows][26.825.3734] Existing text tasks fail to start Voice because avatar overlay has no conversation state
What version of the Codex App are you using?
- ChatGPT/Codex Desktop package:
26.825.3734.0 - Desktop executable file version:
151.0.7922.174 - Bundled Codex CLI:
0.150.0-alpha.12.2
What subscription do you have?
Paid ChatGPT subscription (exact tier omitted).
What platform is your computer?
Windows x64, build 26200.9168.
What issue are you seeing?
Starting live Voice from multiple existing local Codex text tasks fails immediately with:
Voice chat is unavailable
The same Desktop process can start Voice successfully in another recent local Codex text task, so account eligibility, microphone access, and the Realtime service are available.
This is a regression for at least one affected thread: the exact same thread successfully started a Realtime Voice session in Desktop build 26.818.8289.0 on 2026-08-24.
Steps to reproduce
- Open an existing local Codex task that was created and used in text mode.
- Wait for its history to appear.
- Select Start voice chat.
- Observe that the avatar overlay displays Voice chat is unavailable.
- Repeat in another existing text task and observe the same failure.
- Open a recent control text task in the same Desktop process and start Voice.
- Observe that the control task establishes Voice successfully.
The issue is reproducible across multiple existing text tasks, but not every task.
Actual behavior
For an affected thread, the sanitized sequence is:
thread_stream_view_activity_changed ... resumeState=resumed streamRole=owner
thread/read ... errorCode=null
No conversation state for conversation ID ... rendererWindowAppearance=avatarOverlay
Error starting realtime voice: Voice chat is unavailable
There is no thread/realtime/start request for the failed attempt.
For the working control thread in the same process:
[Composer] resolved realtime continuity enabled=true ... serviceAvailable=true
Starting realtime voice transport ... version=v3
Starting realtime voice app-server sideband ... transport=webrtc
thread/realtime/start ... errorCode=null
realtime_session_started
realtime_session_updated realtimeSessionId=rtc_...
Regression comparison
The same affected thread on Desktop 26.818.8289.0 previously followed this path:
thread/resume ... errorCode=null
maybe_resume_success ... assignedStreamRole=owner
[Composer] resolved realtime continuity enabled=true
thread/realtime/start ... errorCode=null
realtime_session_started
On Desktop 26.825.3734.0, the avatar overlay performs thread/read but does not perform the earlier thread/resume / maybe_resume_success sequence before checking conversation state.
This suggests that the avatar overlay is failing to hydrate/resume conversation state for some existing text threads before starting Realtime.
Expected behavior
Selecting Start voice chat in an existing text task should hydrate or resume that thread's conversation state, then start Realtime Voice while preserving the task context.
If hydration fails, the UI should report a stage-specific error and offer a retry instead of the generic Voice chat is unavailable message.
Additional information
- The affected path fails before
thread/realtime/start, so it does not reach WebRTC or Sideband. - No raw logs are attached because they contain local task metadata and filesystem paths. Sanitized excerpts can be provided privately.
- Related but distinct:
- #38324 reports missing conversation state in the macOS dictation renderer.
- #35500 is the older macOS feature request for entering Voice from existing text tasks. In this report, the Voice entry exists and previously worked; initialization now fails on Windows.