Repository navigation
Codex Desktop: proactive handoff and rescue workflow for unrecoverable remote compaction failures #24100
Description
Summary
A long-running Codex Desktop project thread became unusable after remote compaction started failing, even for tiny prompts such as "are you there?". The error was:
{
"error": {
"message": "Your input exceeds the context window of this model. Please adjust your input and try again.",
"type": "invalid_request_error",
"param": "input",
"code": "context_length_exceeded"
}
}This was especially painful because the stuck thread contained substantial project context. Once compaction failed, the thread could not produce its own handoff summary.
Environment
- Product: Codex Desktop
- Platform: Windows
- Model in thread metadata: gpt-5.5, xhigh reasoning
- Local thread metadata showed Codex CLI/app metadata around 0.118.0-alpha.2, but the user had recently updated Codex before the failure
- Thread type: long-running project thread with many pasted screenshots/images over time
What happened
The local rollout had grown very large because older prompts and tool outputs still contained embedded image data URLs from pasted screenshots. Those images were no longer needed for the active work, but they remained in the local thread history. When Codex attempted remote compaction, the compaction request itself appeared to exceed the model context window, leaving the thread unable to answer even a minimal prompt.
Recovery approach that worked
A second helper Codex thread was able to repair the broken thread locally:
- Identified the local rollout for the stuck thread.
- Created a durable handoff summary as a fallback.
- Backed up the original rollout file.
- Replaced embedded image payloads with lightweight placeholders while preserving message/tool structure.
- Waited until Codex was fully closed so the app would not rewrite cached state.
- Replaced the original rollout path in place with the repaired, image-stripped rollout.
- Restarted Codex and opened the original thread.
After this, the original thread responded successfully and appeared intact.
Observed local numbers from this case:
- Rollout reduced from about 611 MB to about 52.7 MB.
- Embedded
data:imagepayloads reduced to zero. - JSON parse errors after repair: zero.
- Thread became usable again after restart.
Why this matters
The most valuable Codex threads are often the ones most likely to become long, media-heavy, and hard to replace. If compaction fails after a thread has crossed the point where it can answer, the user cannot ask that same thread to summarize itself or create a handoff.
Feature requests
- Proactively detect when a thread is approaching compaction failure risk and create a durable handoff before it becomes unusable.
- Add a built-in rescue workflow for stuck sessions, especially one that can strip stale pasted images or oversized tool payloads while preserving text context.
- When remote compaction fails because the compaction request itself is too large, explain that clearly and offer recovery options: create handoff, strip media payloads, fork a repaired thread, or archive large assets.
- Provide a user-visible continuity/export mechanism for long-running project threads that does not depend on the current thread still being able to answer.
- Consider a helper-thread pattern as an official workflow: another Codex session can inspect, summarize, and repair the local history of a stuck session under user control.
Related issues
This seems related to prior compaction/context reports such as:
- Autocompact fails #18572
- Unable to compact the context in a VERY long running session #10823
- GPT-5.5 Codex session hits unrecoverable compaction failure around ~220k tokens despite advertised 400k context #19386
- /compact does not work. #4813
The additional contribution here is the recovery pattern: a helper Codex thread was able to back up and surgically reduce the local history, after which the original thread was recoverable.
Activity
github-actions commentedon May 22, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
jshaofa-ui commentedon May 23, 2026
openai/codex #24100: Proactive Handoff and Rescue Workflow for Unrecoverable Remote Connections
Issue Summary
Root Cause Analysis
1. Remote Session Failure Modes
Codex Desktop remote sessions can become unrecoverable due to:
2. Current Behavior (Problem)
3. Missing Components
Fix Approach
Component 1: Connection Health Monitoring
ooiuuii commentedon Jun 15, 2026
Adding another user-impact data point for the handoff/rescue side of this issue.
I had a long-running Codex Desktop thread that contained substantial working context and prior GitHub/project workflow decisions. By the time it was diagnosed, the thread was close to the effective context window, around
232k / 258k, had accumulated large diagnostic/tool outputs, and no active local subprocess explained the stall. The practical advice was to stop using that old thread and continue from a short-context helper thread.The painful part is exactly what this issue describes: once the original thread is already degraded, it is risky to ask that same thread to summarize itself or produce a clean handoff. A helper thread can inspect the situation and reconstruct enough continuity, but that is currently an improvised workflow rather than a supported recovery path.
A built-in rescue flow would have been the right product behavior:
This variant was not necessarily an image-payload compaction failure like the original report, but the user impact is the same: the most valuable thread became the least safe place to ask for its own handoff.
Related narrower diagnostic-boundary issue: #28345.
3no-mark commentedon Sep 14, 2026
I hit this error when Codex tried to compact a long-running thread:
The current request fails, and I cannot ask the thread to prepare a handoff before moving to a new one. “Start a new thread” leaves me without a reliable record of the work, decisions, and next steps held in the old thread.
Please provide a Prepare handoff recovery action that remains available after compaction fails. It should produce a copyable summary of the thread’s goal, decisions, work completed, outstanding work, and next steps, without requiring the failed thread to complete another normal request. If possible, offer to start a new thread with that handoff attached.