You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
voice mode thread disappears after inactivity timeout #35103
What version of the Codex App are you using (From “About Codex” dialog)?
26.721.31836 (build 5828)
What subscription do you have?
pro
What platform is your computer?
mac
What issue are you seeing?
when you use the new voice feature on codex desktop, if it times out due to inactivity, the thread disappears
also, why cant we choose how long the inactivity timeout is? would be good for it to stay up there to let me know when my longer threads are done, not just timeout after 2 minutes
What steps can reproduce the bug?
use the new codex voice mode
minimize codex and use the browser
mute the small icon, and let it time out
Thanks for tracking this — attempting a residual-focused analysis aligned with docs/contributing.md (invitation-only: analysis in-thread, no unsolicited PR).
Reporter posture: static + local evidence where available; not claiming a maintainer invite.
Observed (from issue + public residual signal)
What version of the Codex App are you using (From “About Codex” dialog)? 26.721.31836 (build 5828) ### What subscription do you have? pro ### What platform is your computer? mac ### What issue are you seeing? when you use the new voice feature on codex desktop, if it times out due to inactivity, the thread disappears also, why cant we choose how long the inactivity timeout is? would be good for it to stay up there to let me know when my longer threads are done, not just timeout after 2 minut
Root-cause hypothesis
Multi-symptom cluster (404, orb flash, hang, false rate-limit, blank session) suggests endpoint/routing or client capability mismatch rather than pure UX. GH analysis density is low vs social heat.
High-level fix outline (not a PR)
Reproduce with version matrix + HAR if possible (desktop vs mobile).
Treat as product bug report with expected/actual table; much surface may be closed service.
Prefer one structured issue/analysis rather than five symptom forks.
Related thin trackers
#35103 and adjacent voice issues; avoid duplicate megathreads.
Questions for maintainers
Is the intended long-term policy documented for this area (especially sandbox gitdir / log TRACE defaults)?
Preferred residual anchor issue if several open threads describe the same mechanism?
If the high-level outline above is roughly aligned, would an invited PR with failing-first tests be welcome later — or is an internal fix preferred?
Happy to refine with more measurements or code pointers. No unsolicited PR from me.
Residual analysis for #35103 (voice mode thread disappears after inactivity timeout) — invitation-only. Radar cluster “Voice multi-symptom” has high social density but low structured OSS analysis. No unsolicited PR.
Deterministic evidence (code surface on 5dd992acd3)
This residual is primarily product/UX lifecycle, but the client surface is concrete:
codex-rs/tui/src/app/thread_events.rs notes that raw response items and realtime audio can carry large payloads and must be handled carefully on replay (≈L141–L153).
Chat widget protocol also matches realtime notification variants (codex-rs/tui/src/chatwidget/protocol.rs ≈L220–L225).
Runtime / social residual: multi-author reports of timeout → vanished thread, false rate-limit, orb hang; GH analysis density on #35103 was thin relative to X heat — high leverage for a structured residual note.
Root-cause hypothesis
Inactivity timeout tears down realtime/thread state without a recoverable rehydrate path. Client may surface generic capability/rate-limit errors after Voice integration changes, masking the real ThreadRealtimeError / closed reason. Large audio payload paths increase the chance of partial state if teardown races with transcript deltas.
High-level fix outline (not a PR)
Preserve or clearly rehydrate voice thread after idle timeout (or show an explicit “session expired — restart voice” recovery affordance).
Map ThreadRealtimeError / closed reasons to accurate UI copy (no false rate-limit).
Activity
bbingz commentedon Jul 24, 2026
Analysis (community)
Thanks for tracking this — attempting a residual-focused analysis aligned with docs/contributing.md (invitation-only: analysis in-thread, no unsolicited PR).
voice)Observed (from issue + public residual signal)
What version of the Codex App are you using (From “About Codex” dialog)? 26.721.31836 (build 5828) ### What subscription do you have? pro ### What platform is your computer? mac ### What issue are you seeing? when you use the new voice feature on codex desktop, if it times out due to inactivity, the thread disappears also, why cant we choose how long the inactivity timeout is? would be good for it to stay up there to let me know when my longer threads are done, not just timeout after 2 minut
Root-cause hypothesis
Multi-symptom cluster (404, orb flash, hang, false rate-limit, blank session) suggests endpoint/routing or client capability mismatch rather than pure UX. GH analysis density is low vs social heat.
High-level fix outline (not a PR)
Related thin trackers
#35103 and adjacent voice issues; avoid duplicate megathreads.
Questions for maintainers
Happy to refine with more measurements or code pointers. No unsolicited PR from me.
bbingz commentedon Jul 24, 2026
Analysis (community)
Residual analysis for #35103 (voice mode thread disappears after inactivity timeout) — invitation-only. Radar cluster “Voice multi-symptom” has high social density but low structured OSS analysis. No unsolicited PR.
Deterministic evidence (code surface on
5dd992acd3)This residual is primarily product/UX lifecycle, but the client surface is concrete:
codex-rs/features/src/lib.rs— experimental realtime voice (realtime_conversation/ “Enable experimental realtime voice conversation mode in the TUI”, ≈L250, key ≈L1357).codex-rs/tui/src/app/app_server_event_targets.rs:ThreadRealtimeStarted/ThreadRealtimeItemAdded/ThreadRealtimeTranscriptDelta/ThreadRealtimeTranscriptDoneThreadRealtimeOutputAudioDelta/ThreadRealtimeSdp/ThreadRealtimeError/ThreadRealtimeClosedcodex-rs/tui/src/app/thread_events.rsnotes that raw response items and realtime audio can carry large payloads and must be handled carefully on replay (≈L141–L153).codex-rs/tui/src/chatwidget/protocol.rs≈L220–L225).Runtime / social residual: multi-author reports of timeout → vanished thread, false rate-limit, orb hang; GH analysis density on #35103 was thin relative to X heat — high leverage for a structured residual note.
Root-cause hypothesis
Inactivity timeout tears down realtime/thread state without a recoverable rehydrate path. Client may surface generic capability/rate-limit errors after Voice integration changes, masking the real
ThreadRealtimeError/ closed reason. Large audio payload paths increase the chance of partial state if teardown races with transcript deltas.High-level fix outline (not a PR)
ThreadRealtimeError/ closed reasons to accurate UI copy (no false rate-limit).Questions for maintainers
No unsolicited PR from me.