Regression after unified desktop rollout: Responses WebSocket timeouts and stream disconnects
Summary
After the July 2026 unified ChatGPT/Codex desktop rollout, Codex stream reliability changed sharply on the same Mac and network setup.
- July 1–19: 206
task_completeevents, 0 stream-disconnect failures. - From July 20 onward: 115
task_completeevents, 24 failures (20.9%). - First recorded failure: July 20, 2026 at 01:01 UTC.
Typical error:
stream disconnected before completion:
Transport error:
network error:
error decoding response body
Uploaded diagnostics
Codex /feedback successfully uploaded the current session logs and diagnostics.
Feedback thread ID: 019fb0b7-37b7-7ae2-a862-6adb86c19cc0
Controlled reproduction
- Date: July 30, 2026
- Timezone: Asia/Shanghai
- OS: macOS 26.5.2, arm64
- Desktop version: 26.721.81911
- Codex CLI/app-server: 0.146.0-alpha.3.1
- Model: gpt-5.6-sol
- Authentication: ChatGPT
- CLI thread ID:
019fb09b-6d53-7953-820a-dc869d009e9c - Turn ID:
019fb09b-6dc6-7961-bec0-945a75a8d6e1
The test was read-only and made no tool calls. Network and proxy node were held constant. Clash proxy logs show the same node (Japan03) for the full test; failover and node switching were not enabled.
Observed sequence:
stream disconnected - retrying sampling request (1/5) ... request timed out
stream disconnected - retrying sampling request (2/5) ... request timed out
stream disconnected - retrying sampling request (3/5) ... request timed out
stream disconnected - retrying sampling request (4/5) ... request timed out
stream disconnected - retrying sampling request (5/5) ... request timed out
falling back to HTTP
Falling back from WebSockets to HTTPS transport. request timed out
turn.completed
The HTTPS fallback completed successfully in this short reproduction. However, historical tasks lasting roughly 1–99 minutes frequently terminate with error decoding response body and do not recover.
During the same reproduction, other unified ChatGPT backend calls also failed:
failed to parse remote plugin catalog response ... EOF while parsing a value
failed to send events request ... /backend-api/codex/analytics-events/events
Codex Doctor result
Responses WebSocket timed out; HTTPS fallback may still work
wire API: responses
supports websockets: true
endpoint: wss://chatgpt.com/backend-api/<redacted>
handshake timed out
Local installation, authentication, configuration, and database checks passed.
Local version timeline
2026-07-16 app-server 0.144.2
2026-07-16 app-server 0.144.5
2026-07-17 app-server 0.145.0-alpha.18
2026-07-23 app-server 0.145.0-alpha.27 / alpha.30
2026-07-24 app-server 0.146.0-alpha.3.1
The failure rate changed from 0% to approximately 20.9% during this rollout window.
Questions
- Did Responses WebSocket become the preferred/default Codex transport during the July unified desktop rollout?
- Is there a known WebSocket handshake or stream-resume regression in app-server 0.145.x or 0.146.x?
- Do the desktop app and CLI use identical WebSocket-to-HTTPS fallback and stream-resume behavior?
- Is there a supported temporary setting to force HTTPS transport only?
- Can you inspect the server-side logs for the feedback thread, CLI thread, and turn IDs above?
Requested resolution
Please investigate the WebSocket handshake timeout and the inability of long HTTPS fallback streams to resume after a truncated response. A supported HTTPS-only workaround would be useful until the WebSocket path is stable.
A local evidence bundle containing the full report and 24-event CSV was prepared and checked for secrets, but was not attached because this issue-creation interface does not support file uploads. Its SHA-256 is:
ec6a4a04f6267e3eebdac17a565df9af998261aad677b77f00c36a022a284aab
8 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Independent macOS corroboration with read-only local diagnostics.
Environment
26.5.2(25F84), arm6426.727.40816(build6067)0.146.0-alpha.9.2gpt-5.6-terraandgpt-5.6-solTerminal stream failures
One long-running task recorded six terminal failures on July 30:
019faa40-b701-7a93-91af-c0aee186ca1b18:34:01,19:02:37,21:53:42,22:21:40,22:41:20,22:43:28Reconnect/compaction reproduction on July 31
A separate task repeatedly displayed
Reconnecting 1/5through5/5after tool calls during a four-minute turn. The turn eventually recovered and continued.019fb53c-d8ce-7530-b988-a2f7f4ceb272019fb930-a519-7c11-998a-82f0390f3b21gpt-5.6-terra, reasoning effortmaxrun_auto_compact{reason=ContextLimit phase=MidTurn}231,862 / 258,400tokens.110.1Mtokens, mostly cached input.This suggests context/remote-compaction pressure increases the failure rate, but it does not fully explain the separate terminal disconnects.
Network controls
At the same host:
/modelsrequest returned200 OK18 seconds before one stream failure.Requested investigation
Please inspect the server-side records for the thread/turn IDs above and the WebSocket-to-HTTPS recovery path, especially during remote mid-turn compaction. The UI currently presents these retries as generic connectivity failures even when endpoint reachability and concurrent authenticated requests are healthy.
A supported HTTPS-only workaround or a more durable stream-resume/compaction fallback would help while this is investigated. No project content, local paths, credentials, or raw logs are attached.
Additional macOS desktop reproduction (2026-08-09) that may help confirm the issue is still present on a newer build.
Environment
Observed
Impact
The original task looked unrecoverable even though its local work survived, forcing the user to open a second chat to diagnose and recover it.
Expected
Automatic stream reconnection/resume, or a clear retry/recovery state that does not leave the chat appearing permanently unreachable.
I did not isolate local proxy/network conditions, so this is a corroborating field report rather than a controlled network reproduction. No project content, logs, session transcript, or thread IDs are attached.
Hi @anyawang1213-cell, regarding the missing tool output / unfinished call state in the transcript, Codex Rescue Alpha5 has bounded tool-correlation diagnostics to detect persisted correlation anomalies and incomplete turn boundaries without assuming non-execution.
To inspect the rollout locally and safely in read-only mode:
No private files need to be uploaded; please sanitize any repository details before sharing diagnostic output.
Additional macOS Codex Desktop reproduction with diagnostics uploaded via
/feedback.Feedback diagnostics
Feedback thread ID: 01a01813-25a9-7212-9f95-12e2e10f744fObserved on 2026-08-19
Across multiple independent long-running local-project threads in Codex Desktop, the response stream repeatedly entered reconnect loops and failed with both of these errors:
and:
The failures frequently appeared during or immediately after automatic context compaction. One affected thread repeatedly cycled through
Reconnecting 2/2and laterReconnecting 3/5while the underlying local worktree changes remained present.Pattern / impact
This looks closely aligned with the WebSocket/session-resume regression described in this issue. The
/feedbacksubmission was made from an affected Codex thread with current session logs included.Please inspect the server-side records for feedback thread
01a01813-25a9-7212-9f95-12e2e10f744f, especially WebSocket timeout/resume behavior around automatic context compaction and fallback to HTTPS. A durable stream-resume path or supported HTTPS-only workaround would materially reduce the impact while this is investigated.Additional reproduction after switching to a fresh, narrowly bounded checkpoint chat and committed handoff state.
Feedback thread for the affected account/session remains:
01a01813-25a9-7212-9f95-12e2e10f744fOn 2026-08-19, a new Codex Desktop chat was started from a clean committed checkpoint with a single bounded task: occurrence-level rights adjudication only. The task still entered a reconnect loop after about 1h49m and displayed a third related error signature:
The task eventually completed and committed its checkpoint successfully, so local work survived, but this confirms the transport problem persists even after:
This strengthens the case that the failure is in WebSocket/session transport or resume behavior rather than ordinary client network quality or simply oversized monolithic tasks. Please include this error signature when inspecting the server-side diagnostics for the feedback thread.
Additional Windows reproduction on a newer build (2026-08-25, Asia/Shanghai).
10.0.26200x6426.818.41509; app-server/CLI0.149.0gpt-5.6-sol, reasoning efforthighAfter a completed shell tool call, each sampling attempt returned HTTP
200 OK, then failed after roughly two minutes with:Codex exhausted retries
1/5through5/5and the UI displayedTask encountered a system error. There were no HTTP 5xx responses, panic/fatal events, or error-level client logs; local Codex SQLite integrity checks returnedok.The same thread has failed this way multiple times. Expected: durable stream resume/recovery and the underlying transport error shown in the UI. Full thread/turn IDs can be provided privately if needed.
Adding a recent macOS reproduction with a useful control:
Environment
Observed
stream disconnected before completion: Transport error: network error: error decoding response bodyMost useful reproduction
No project contents, case numbers, local paths, full logs, or session IDs are included here. I can provide sanitized session metadata if needed.