Repository navigation
Regression after unified desktop rollout: Responses WebSocket timeouts and stream disconnects #36059
Description
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
Activity
github-actions commentedon Jul 30, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
aandresalvarez commentedon Jul 31, 2026
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.
professional933 commentedon Aug 9, 2026
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.
boombx403-byte commentedon Aug 18, 2026
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.
IDEA-ag commentedon Aug 19, 2026
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.IDEA-ag commentedon Aug 19, 2026
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.
PerrinYong commentedon Aug 25, 2026
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.
zhouzhikwo2 commentedon Aug 26, 2026
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.
Bananhylsa commentedon Aug 30, 2026
I can reproduce this regression on Windows.
Desktop version: 26.825.6671.0
Bundled Codex/app-server: 0.151.0-alpha.7.2
Authentication: ChatGPT
Responses error:
stream disconnected before completion: failed to send websocket request:
IO error: An established connection was aborted by the software in your
host machine. (os error 10053)
Feedback upload also fails:
failed to upload feedback to Sentry:
operation timed out
Feedback ID:
01a04d8c-3c2f-7691-bdec-093c191803b5
WinHTTP is configured for direct access, with no proxy environment
variables. TCP port 443 to the Sentry endpoint is currently reachable,
so the upload timeout appears intermittent or application-specific.
Long-running Codex tasks are affected, while some short tasks succeed.