Repository navigation
Windows: repeated stream disconnects with compaction failures and missing tool outputs (Sep 7-15 diagnostic snapshot) #47009
Description
Submission date: 2026-09-21. This report preserves the September 16 diagnostic snapshot; no claim is made about failures after that cutoff.
Codex Windows intermittent disconnections and compaction failures
Summary
During normal use, the user reports repeated conversation interruptions and connection failures. Retained local logs show 964 retry records across 155 distinct turns and 36 distinct threads. These are affected turns, NOT 964 terminal failures. Automatic recovery and final failure rates have not been established.
Environment
- Windows 11, OS build observed in local proxy log: 22631.
- Installed desktop package: OpenAI.Codex 26.908.9136.0 (observed on 2026-09-16, not necessarily the current version or the version of every historical event).
- Running Codex backend binary reports: codex-cli 0.154.0-alpha.6.2.
- A local HTTP proxy provided by v2rayN/Xray is configured on loopback port 10808.
- Windows system proxy and the diagnostic child process HTTP_PROXY/HTTPS_PROXY/ALL_PROXY settings agree. This does not establish the environment of every running desktop process.
Observation scope
Snapshot cutoff: 2026-09-16 10:59:33 UTC+08:00.
Core retained logs start on 2026-09-06 00:53:24 UTC+08:00. Retry events in this snapshot occur September 7-15.
Desktop counts come from 75 retained files in UTC-dated September 3-16 folders. Retention and calendar-day coverage may be incomplete.
Source databases and original transcripts were not attached.
Counts
| Category | Records | Distinct affected turns |
|---|---|---|
| Answer stream disconnected, retrying | 796 | 137 |
| Stream connection failed, waiting to retry | 88 | 12 |
| Remote compaction stream failed, retrying | 80 | 32 |
| Pre-sampling compaction failed | 11 | 11 |
| Missing custom tool call output | 51 | 3 |
Categories overlap; turn counts must not be added. Daily counts also overlap when a turn spans midnight.
2,436 separate desktop background request-failure records were observed; 2,281 were ERR_CONNECTION_TIMED_OUT. These include background services and must not be treated as conversation failure counts.
Representative error signatures
- stream disconnected before completion: failed to send websocket request: Connection closed normally
- peer closed connection without sending TLS close_notify
- Transport error: network error: error decoding response body
- Connection failed: error sending request
- Windows socket error 10061 (connection refused)
- idle timeout waiting for websocket
- remote compaction v2 stream failed; retrying request after delay
- Failed to run pre-sampling compact
- Custom tool call output is missing
Timestamped, pseudonymized examples and daily counts are included below.
Diagnostic tests performed on 2026-09-16
On 2026-09-16, unauthenticated curl probes through the configured proxy returned:
- https://chatgpt.com/: HTTP 403 in 0.646 seconds; TLS handshake completed.
- https://chatgpt.com/backend-api/wham/usage: HTTP 401 in 0.408 seconds; TLS handshake completed.
- Direct connection to chatgpt.com without proxy: connection timeout after 8 seconds.
401/403 establish HTTP reachability only, not successful authentication, model access, WebSocket operation, or long-stream stability. No credentials or chat content were sent by these probes.
The local proxy port was listening and owned by Xray at inspection time.
Additional local finding
The proxy application's log records a startup and a ChangeSystemProxyAsync UI interaction exception at 2026-09-14 21:35:57 UTC+08:00. This is a possible local contributor, not proof of the cause of Codex failures. Most failures cannot yet be attributed to the local proxy, upstream network, or server.
Reproduction status and expected behavior
Intermittent behavior was observed during ordinary conversations; a deterministic minimal reproduction is not available. We have not deliberately interrupted active work to reproduce failures.
Expected: a recoverable interruption resumes cleanly; unrecoverable errors provide an actionable reason and preserve conversation/tool state.
Requested investigation
- Please investigate stream reconnection and compaction recovery for the timestamps below.
- Please clarify whether missing tool output after interruptions is a known issue and how to recover affected conversations safely.
- Please advise which diagnostic IDs or additional redacted traces are needed to correlate client and server failures.
- Please distinguish retryable network errors from terminal turn failures in the UI or exported diagnostics.
Privacy
This report contains only aggregate counts, generalized environment details, timestamps, error signatures and pseudonymized identifiers. No authentication files, API keys, account IDs, email addresses, project paths, prompts, conversation transcripts, proxy subscriptions or server credentials are included.
Official reporting guidance checked on 2026-09-16:
https://learn.chatgpt.com/docs/reference/troubleshooting
Use the feedback entry in the composer slash menu, or the issue-reporting route linked by the official documentation. Review optional session sharing before submitting.
Subscription
ChatGPT sign-in; subscription during the historical failures was not verified.
Related reports and scope
Similar symptoms appear in #46248 and #45925. This report focuses on Windows transport errors together with compaction and missing-tool-output recovery, rather than asserting the account-specific capacity issue described there. A common root cause has not been established. Please link to an existing canonical issue if appropriate.
Daily retry counts (UTC+08:00)
| Date | Records | Distinct turns |
|---|---|---|
| 2026-09-07 | 202 | 32 |
| 2026-09-08 | 244 | 27 |
| 2026-09-09 | 89 | 18 |
| 2026-09-10 | 89 | 8 |
| 2026-09-11 | 46 | 16 |
| 2026-09-12 | 23 | 13 |
| 2026-09-13 | 43 | 11 |
| 2026-09-14 | 195 | 26 |
| 2026-09-15 | 33 | 7 |
Timestamped signatures (UTC+08:00; pseudonymized identifiers)
[
{
"timestamp": "2026-09-07T11:30:17+08:00",
"category": "websocket_closed",
"source_target": "codex_core::responses_retry",
"thread_alias": "thread-7b3ddd4ec7",
"turn_alias": "turn-f3203a2ff2",
"signature": "Connection closed normally"
},
{
"timestamp": "2026-09-15T18:41:50+08:00",
"category": "websocket_closed",
"source_target": "codex_core::responses_retry",
"thread_alias": "thread-00cb5a43b4",
"turn_alias": "turn-fb7d35f0e7",
"signature": "Connection closed normally"
},
{
"timestamp": "2026-09-07T11:26:43+08:00",
"category": "tls_unexpected_eof",
"source_target": "codex_core::responses_retry",
"thread_alias": "thread-518a942a7b",
"turn_alias": "turn-fbb8501b78",
"signature": "TLS close_notify"
},
{
"timestamp": "2026-09-15T19:01:44+08:00",
"category": "tls_unexpected_eof",
"source_target": "codex_core::responses_retry",
"thread_alias": "thread-00cb5a43b4",
"turn_alias": "turn-fb7d35f0e7",
"signature": "TLS close_notify"
},
{
"timestamp": "2026-09-07T16:32:47+08:00",
"category": "response_body_network_error",
"source_target": "codex_core::responses_retry",
"thread_alias": "thread-7b3ddd4ec7",
"turn_alias": "turn-aafdbc8e6e",
"signature": "error decoding response body"
},
{
"timestamp": "2026-09-14T21:06:58+08:00",
"category": "response_body_network_error",
"source_target": "codex_core::responses_retry",
"thread_alias": "thread-ba35daca20",
"turn_alias": "turn-f1d6d5beee",
"signature": "error decoding response body"
},
{
"timestamp": "2026-09-07T10:08:54+08:00",
"category": "connect_failed",
"source_target": "codex_core::responses_retry",
"thread_alias": "thread-b06bf3b5d3",
"turn_alias": "turn-42108a4a6c",
"signature": "stream connection failed"
},
{
"timestamp": "2026-09-14T21:06:25+08:00",
"category": "connect_failed",
"source_target": "codex_core::responses_retry",
"thread_alias": "thread-ba35daca20",
"turn_alias": "turn-f1d6d5beee",
"signature": "stream connection failed"
},
{
"timestamp": "2026-09-07T10:08:17+08:00",
"category": "connection_refused",
"source_target": "codex_api::endpoint::responses_websocket",
"thread_alias": "thread-b06bf3b5d3",
"turn_alias": "turn-b23a6a8439",
"signature": "os error 10061"
},
{
"timestamp": "2026-09-07T16:36:57+08:00",
"category": "connection_refused",
"source_target": "codex_api::endpoint::responses_websocket",
"thread_alias": "thread-518a942a7b",
"turn_alias": "turn-8246331ad7",
"signature": "os error 10061"
},
{
"timestamp": "2026-09-07T11:31:49+08:00",
"category": "websocket_idle_timeout",
"source_target": "codex_core::responses_retry",
"thread_alias": "thread-518a942a7b",
"turn_alias": "turn-fbb8501b78",
"signature": "idle timeout waiting for websocket"
},
{
"timestamp": "2026-09-15T19:06:48+08:00",
"category": "websocket_idle_timeout",
"source_target": "codex_core::responses_retry",
"thread_alias": "thread-00cb5a43b4",
"turn_alias": "turn-fb7d35f0e7",
"signature": "idle timeout waiting for websocket"
},
{
"timestamp": "2026-09-07T11:26:43+08:00",
"category": "compaction_retry",
"source_target": "codex_core::responses_retry",
"thread_alias": "thread-518a942a7b",
"turn_alias": "turn-fbb8501b78",
"signature": "remote compaction v2 stream failed"
},
{
"timestamp": "2026-09-15T20:56:46+08:00",
"category": "compaction_retry",
"source_target": "codex_core::responses_retry",
"thread_alias": "thread-00cb5a43b4",
"turn_alias": "turn-af0f2ff030",
"signature": "remote compaction v2 stream failed"
},
{
"timestamp": "2026-09-07T12:45:38+08:00",
"category": "compaction_failed",
"source_target": "codex_core::session::turn",
"thread_alias": "thread-7b3ddd4ec7",
"turn_alias": "turn-31ec291573",
"signature": "Failed to run pre-sampling compact"
},
{
"timestamp": "2026-09-15T20:42:25+08:00",
"category": "compaction_failed",
"source_target": "codex_core::session::turn",
"thread_alias": "thread-00cb5a43b4",
"turn_alias": "turn-b8338e7e22",
"signature": "Failed to run pre-sampling compact"
},
{
"timestamp": "2026-09-11T18:08:42+08:00",
"category": "missing_tool_output",
"source_target": "codex_core::util",
"thread_alias": "thread-681de3e10d",
"turn_alias": "turn-88dca5e764",
"signature": "Custom tool call output is missing"
},
{
"timestamp": "2026-09-11T19:08:28+08:00",
"category": "missing_tool_output",
"source_target": "codex_core::util",
"thread_alias": "thread-681de3e10d",
"turn_alias": "turn-5bc0a3ab4f",
"signature": "Custom tool call output is missing"
}
]Please reply here with any required follow-up diagnostics, recommended supported recovery steps, and any applicable fixed version.
Activity
github-actions commentedon Sep 21, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
bondgg621-web commentedon Sep 22, 2026
Update: failures persist after the September desktop update
Follow-up inspection on 2026-09-22 (UTC+08:00):
26.915.4065.0; bundled core:0.155.0-alpha.9.2.Connection closed normally(18), unexpected TLS EOF (6), andwebsocket closed by server before response.completed(5).Current built-in
codex doctorchecks pass for the active provider: authenticated WebSocket handshake returnedHTTP 101 Switching Protocolsand the HTTPS inference endpoint was reachable. This demonstrates current endpoint reachability and handshake success only; it does not demonstrate long-stream stability.The configured local proxy was restarted at about 12:39 on September 22. Answer-stream failures occurred both before (11:57, 12:15, 12:28, 12:34) and after (14:09, 14:21, 14:27, 17:56) that restart. The proxy is therefore not currently proven to be the sole cause, and restart did not eliminate the symptom.
I reviewed the auto-suggested reports. #45921 is a related Windows image-heavy, task-specific idle-timeout case; #46908 is a complete connection failure even for a minimal fresh prompt; #46928 is a macOS long-task report. This issue remains distinct because it provides aggregate Windows data across ordinary answer streams and compaction, plus the missing-tool-output recovery symptom.
No credentials, session content, raw thread IDs, or complete logs are added in this update. Please advise what further redacted diagnostic evidence would help distinguish a service-side stream close from a client/proxy transport failure.