Codex Voice on macOS disconnects after 15–20s with `Connection reset by peer (os error 54)` while text task continues

Open 💬 5 comments Opened Jul 26, 2026 by ghost

Summary

Codex Voice in the ChatGPT macOS desktop app consistently disconnects after approximately 15–20 seconds with a WebSocket read failure, while the underlying text conversation and Codex task continue running normally.

Exact error

Voice chat error: stream disconnected before completion:
failed to read websocket message:
IO error: Connection reset by peer (os error 54)

Reproduction

  1. Open a Codex conversation in the ChatGPT macOS app.
  2. Start Voice chat.
  3. Voice connects successfully.
  4. The assistant starts responding and the Codex task begins normally.
  5. After approximately 15–20 seconds, Voice disconnects with the error above.
  6. The text conversation and Codex task continue working after the Voice failure.

Frequency

Reproduces consistently across multiple Codex conversations.

Confirmed occurrences on July 26, 2026 at approximately:

  • 10:45 Europe/Moscow
  • 15:16 Europe/Moscow
  • 15:55 Europe/Moscow

Environment / controls

  • Platform: macOS
  • Surface: ChatGPT desktop app / Codex Voice
  • Web version works reliably on the same account and network.
  • Restarting the macOS app did not help.
  • Text mode remains functional after Voice disconnects.
  • VPN is required for OpenAI access from the user's location and cannot be disabled. Different VPN exit servers/protocols can be tested if needed.

Related reports

  • #14613 contains the same Connection reset by peer (os error 54) error, including reports from users without VPN or proxy.
  • #35094 reports a separate but potentially related Realtime/Voice WebSocket failure path.
  • Multiple open issues describe macOS Codex WebSocket instability and reconnect loops.

Expected behavior

Voice should remain connected for the duration of the session, or recover gracefully from a transient WebSocket interruption without terminating the Voice experience.

Actual behavior

Voice terminates after approximately 15–20 seconds, while the text task continues.

Request

Please investigate the server-side Realtime/WebSocket logs for these timestamps and confirm whether this is a known Voice transport or infrastructure issue. A client fallback/reconnect path would also prevent a transient transport reset from killing the Voice session.

Screenshots with the exact error and timestamps are available.

View original on GitHub ↗

5 Comments

lightbizown-hub · 1 month ago

Additional environment details from a reproducible session:

  • ChatGPT macOS app version: 26.721.41059
  • Release date shown in About ChatGPT: July 24, 2026
  • macOS: Tahoe 26.5.2
  • Hardware: MacBook Air 15-inch, M2, 2023, 8 GB RAM
  • VPN provider: BlancVPN
  • Voice model selector shown during reproduction: 5.6 Sol, High
  • Affected private conversation/thread ID has been sent to OpenAI Support under Case 12189298 and is intentionally not posted publicly.

The exact behavior remains unchanged: Voice connects, the assistant starts responding, and after ~15–20 seconds the Voice WebSocket resets with Connection reset by peer (os error 54), while the text conversation and Codex task continue normally. The web version remains stable on the same account/network.

lightbizown-hub · 1 month ago

Additional reproduction details:

  • VPN client: BlancVPN for macOS
  • Protocol setting during reproductions: Automatic
  • Available protocol options: AmneziaWG, AmneziaWG Extra, Xray, Xray Extra
  • The client does not expose which protocol was automatically selected for a specific session.

The same Voice failure reproduced on at least two different exit locations:

  • Lithuania — Vilnius
  • United States — New York

In both cases, Voice connects and works briefly, then disconnects after ~15–20 seconds with:

stream disconnected before completion
failed to read websocket message
IO error: Connection reset by peer (os error 54)

The underlying Codex text task continues normally, and the web version remains stable on the same account/network.

BlancVPN split tunneling is enabled only for Russian services; OpenAI/ChatGPT traffic is still routed through the VPN.

This weakens the hypothesis that the issue is tied to a single exit node. A controlled protocol comparison (AmneziaWG vs Xray) can be provided if maintainers specify which transport details would be most useful.

lightbizown-hub · 1 month ago

Deterministic silence-trigger identified

A much more precise reproduction condition is now confirmed:

  • The Voice session remains stable while either the user or the assistant is actively speaking.
  • Codex commands execute normally and the underlying task continues.
  • The failure occurs only after both sides become silent.
  • After approximately 15–30 seconds of complete silence, Voice terminates with:
Voice chat error: stream disconnected before completion:
failed to read websocket message:
IO error: Connection reset by peer (os error 54)
  • If speech continues, or resumes before that idle interval expires, the session stays connected.

This strongly correlates the bug with the idle transition rather than general connectivity. Suggested areas to inspect:

  • WebSocket ping/pong / keepalive while no audio frames are flowing
  • client/server idle-timeout handling
  • Server VAD idle timeout / input_audio_buffer.timeout_triggered
  • whether the control WebSocket is reset when audio becomes idle
  • whether macOS Voice fails to recover from an idle transport reset

Expected behavior: a silent pause should keep the session open, or trigger a normal follow-up such as “Are you still there?”. It should not terminate Voice with a WebSocket read error.

vimoxshah · 28 days ago

I am also facing this issue in macOS latest codex app. Seeing error "Voice chat couldn’t start
stream disconnected before completion: realtime call response missing Location"

stardustx8 · 25 days ago

Same issue here. Occurs only after user + assistant are silent for about 1-2min (earlier it occurred like after 20sec of bilateral silence).