Windows Desktop: multiple 1–2 GB rollout sessions trigger ~71 Mbps upstream bursts during resume
What version of the Codex App are you using (From “About Codex” dialog)?
26.715.2305.0
What subscription do you have?
ChatGPT subscription (exact tier was not exposed by the local diagnostics used for this report)
What platform is your computer?
Microsoft Windows NT 10.0.26100.0 x64
What issue are you seeing?
Codex Desktop intermittently saturates upstream bandwidth while multiple very large rollout/session files are active or being resumed.
This was measured locally rather than inferred from Task Manager alone:
- During an 8-second affected interval, the active WLAN adapter averaged about 8.9 MB/s upload (~71 Mbps) while download was about 0.27 MB/s.
- The I/O spike was concentrated in the Codex Desktop app-server process and ChatGPT renderer/network-service processes.
- The traffic used HTTPS connections directly and through a local loopback proxy. The proxy was only forwarding the traffic; Codex/ChatGPT processes were the source.
- During a later 12-second idle interval, upload dropped to about 0.03 MB/s average (0–0.15 MB/s), so this is a burst associated with active/resuming work rather than constant background traffic.
- The local session store contained 245 rollout JSONL files totaling about 23.9 GB.
- 15 rollout files were larger than 1 GB; the largest was about 2.0 GB.
- Several 1.6–2.0 GB rollout files were being modified during the affected period.
- More than 20
node_repltool-runtime child processes were present under Codex.
No packet payloads, account identifiers, local paths, repository names, remote addresses, credentials, or session contents are included in this report.
This appears related to #19643, #20805, and #21948, but the observed failure mode here is specifically Codex Desktop on Windows with multiple 1–2 GB rollout files and measurable high-upstream bursts during active/resume behavior.
What steps can reproduce the bug?
The exact minimal trigger is not yet known, but this is the observed workflow:
- Use Codex Desktop on Windows for long-running browser, computer-use, image, or tool-heavy sessions.
- Accumulate multiple large rollout JSONL files; in this case several reached approximately 1.6–2.0 GB.
- Leave several such sessions active/unarchived, or resume/open them while Codex tool runtimes are still present.
- Monitor adapter throughput and per-process I/O.
- Observe Codex/Desktop processes producing large upstream bursts that can saturate the connection.
- Let the work become idle; upstream traffic returns close to zero.
Session IDs are intentionally omitted because the associated rollouts may contain private repository and browser context. I can provide additional sanitized aggregate diagnostics if maintainers specify what counters are needed.
What is the expected behavior?
- Session resume/hydration should not retransmit or repeatedly process unbounded embedded history.
- Oversized image/browser/tool artifacts should be deduplicated, externalized, or incrementally referenced.
- Inactive oversized sessions should not cause network activity in unrelated active work.
- Upload bandwidth should be bounded and backpressured.
- The app should identify which session/task is sending data and warn when rollout size becomes abnormal.
- Tool-runtime child processes should be cleaned up when their task has finished.
Additional information
The strongest local correlation is between the upload bursts and several concurrently active 1.6–2.0 GB rollout files. This does not prove that every byte of those files was uploaded, but it strongly suggests an unbounded session hydration/reconnect or artifact-handling path.
Related issues:
- #19643 — sustained upload saturation during image-related Codex tasks
- #20805 — image-heavy chats repeatedly reconnect
- #21948 — oversized browser-heavy session degrades the whole Windows app
- #22004 — very large rollout JSONL files and desktop process limits
10 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
<img width="864" height="135" alt="Image" src="https://github.com/user-attachments/assets/1b5c3b90-f7cc-4624-8f72-7fde20a7c111" />
<img width="648" height="716" alt="Image" src="https://github.com/user-attachments/assets/ee4a4aa7-2f7f-43b7-a5ce-bf9dd569d200" /> so slowww what we do my files only 209 MB but that 40GB and 3 hours still ...
Additional sanitized diagnostics from another affected Windows Desktop installation:
26.727.6591.0v1.19.29/connectionscounters via its local named-pipe API (TUN enabled)codex.exe+ChatGPT.exe.chatgpt.comduring this period, with bursts opening a newcodex.execonnection every 1–2 seconds during tool-heavy activity.store: false, consistent with accumulated context/tool artifacts being sent again after tool continuations.This provides direct evidence for the suspected amplification path: image/tool outputs are embedded in rollout history and image data is included again in later model requests. Long-running tool loops multiply that cost.
Suggested fix:
No session contents, images, local paths, credentials, account identifiers, proxy endpoints, or repository details are included here. This also strengthens the image-specific correlation reported in #19643.
I am seeing the same underlying problem on Windows: long Codex Desktop threads progressively become extremely slow and can saturate my upload bandwidth, even though compaction itself succeeds.
Same-instant NetLimiter evidence:
So codex.exe was using about 98% of the available upload capacity at that moment. The NetLimiter chart also shows 269.95 MB uploaded by codex.exe in the displayed time window.
The primary symptom is progressive latency: the first messages in a thread are fast, then the conversation becomes so slow that switching to Fast mode makes little or no perceptible difference. The bottleneck is no longer model generation.
Local diagnostics of my affected active refactor thread:
tokens_usedcounter: 175,455,695Compaction does not fail. However, it appears not to prevent old embedded images, browser/tool artifacts, and large local session state from continuing to cause excessive hydration, upload, or processing.
Expected behavior:
Follow-up: I submitted in-product feedback from the same affected active refactor thread, including the current session logs. Feedback ID:
019fce40-a89f-7862-8a72-96e29ed664f1.The feedback was submitted immediately after a fresh reproduction where the thread entered repeated “Reconnecting” states and its logs recorded
stream disconnected - retrying sampling requestfor the same turn.The combination of 1–2 GB rollouts and large upload bursts specifically during resume makes this a useful oversized-history test. Codex Rescue can inspect persisted records with bounded reads and flag oversized payloads without loading or rewriting the original session.
It cannot fix the Desktop hydration/retransmission path or the upstream network amplification. I’m looking to verify whether its local diagnosis identifies the right structural boundary before that path is exercised.
If one affected session still exists, would you try:
Sanitized structural output is enough. Please don’t publish the raw rollout, embedded images, prompts, SQLite data, credentials, repository contents, or private paths.
https://github.com/shleder/codex-rescue
This is my solution :
i do it like this:
After all this, your file will be around 10MB - 15MB and your last conversations will be saved.
Current-build Windows reproduction with a still-running inherited child
Reporter: @berkyuo2-cpu
Affected ChatGPT/Codex profile: berky1905
Environment:
26.803.10989.0codex-cli 0.144.110.0.19045I reproduced the same upload amplification and was able to identify the exact logical task that remained live.
Evidence while affected
tokens_usedvalue of 117,782,759 and its spawn edge remainedopen.codex.exe, about 3,413 KiB/s), while allnode.exeprocesses together sent only about 89 KiB.chatgpt.com:443flow.This separates the direct network source from the MCP process problem: the idle MCP Node processes were a large RAM cost, but the quota-consuming upload was the Codex app-server carrying/retrying the inherited media-heavy model context.
Restart A/B
After closing and reopening Codex Desktop:
The restart was the emergency stop; it is not an acceptable normal recovery path because active work can be lost.
This field reproduction appears to connect the mechanisms already reported in #34268 / #33235 (full-history media inheritance and upload amplification), #36141 (child outliving an idle/completed parent), and #37541 (Desktop splash/renderer stall).
Suggested invariants:
Usage restoration request
This defect repeatedly retransmitted inherited context and consumed a substantial portion of the affected profile's weekly Codex allowance while the UI appeared idle and again during diagnosis/recovery. Please restore/reset the weekly Codex usage allowance for profile
berky1905, or route this evidence to the account-support team that can perform the restoration. The authenticated GitHub reporter is @berkyuo2-cpu.I have kept private project paths, prompts, media, rollout contents, credentials, and session IDs out of this public comment.
Current-build follow-up: domain-attributed upload amplification with a much smaller multimodal rollout
This is a fresh reproduction on:
26.818.2441.0x640.148.0-alpha.2119045NetLimiter's per-process/per-connection counters were used so combined Windows process I/O was not misreported as network traffic.
During a 12:47–15:19 local observation window:
codex.exe: 8,265,306,320 bytes sent, 713,924,833 bytes received.chatgpt.com.ChatGPT.exeUI/network process received 604,388,909 bytes and sent 10,420,717 bytes.This was not an active static-asset/cache download loop:
persistent.oaistatic.comdownloaded 525,906,987 bytes.The
chatgpt.comconnection history instead contained repeated outbound connections in the 83–112 MB range.Local structural correlation:
data:imagemarkers and 7input_imagemarkers.TLS payloads were not decrypted, so I am not claiming byte-for-byte proof of a particular request body. However, the exact destination, outbound connection sizes/timing, and embedded multimodal context strongly support repeated model-context upload rather than telemetry, MCP provider traffic, or a static-cache loop.
The current app also had repeated idle MCP helper batches, but those helpers had zero established TCP connections during the sample. They are a separate RAM/IPC problem, not the source of this upload.
Requested safeguards:
data:imageand tool-result artifacts across continuations, compaction, and subagent inheritance.No packet payloads, images, prompts, local paths, task IDs, account identifiers, or credentials are included.
Seconding the backup-first instinct from earlier replies, with one hardening: copy through a verified snapshot rather than plain file copies, so a partially-written source does not become your backup.
vetto rescue snapshot <rollout> --output <dest>double-reads the source, fails closed on mid-read changes, and never writes inside the state root.