Codex task history corrupted after Windows app crash
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using (From “About Codex” dialog)?
Version 26.820.71523
What subscription do you have?
Pro
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What issue are you seeing?
A very important, long-running Codex Work task became corrupted after the ChatGPT Windows app/computer crashed. The computer locked up and had to be powered off and restarted.
The task repeatedly resets to the same pre-crash checkpoint. Closing and reopening the task and restarting the Windows app do not resolve it.
Diagnostics observed inside Codex:
- The affected turn remains permanently marked
inProgress. - The thread itself remains marked
active. - A same-directory fork failed with a history-projection error: expected ordinal 6442, got 6441.
- New messages and completed work after the crash disappear from the visible transcript when the task is reopened.
I created a separate recovered task so I can continue working, but I need the original task and its history preserved. Please repair or close the stuck turn and restore the complete transcript, or provide a server-side fork/export of the task.
Exact task and turn identifiers have been provided privately to OpenAI support and can be supplied to maintainers through a secure channel. Application logs are also available privately; they contain sensitive local information and will not be posted publicly.
What steps can reproduce the bug?
- Open an existing, long-running Codex task in the ChatGPT Windows app.
- Start a turn that performs multiple tool calls and takes several minutes.
- While that turn is still running, allow the computer or Windows app to crash unexpectedly.
- Restart the ChatGPT Windows app and reopen the same task.
- Continue the conversation and complete additional turns.
- Close and reopen the task, navigate away and back, or restart the app again.
What is the expected behavior?
After restarting the app, the interrupted turn should either:
- resume normally;
- be marked failed/cancelled; or
- allow the user to continue from the last durable message.
Subsequent completed messages should remain visible, and the task should remain forkable/exportable.
Additional information
Actual result
The conversation repeatedly resets to the turn that was running when the crash occurred. Messages and completed work after that checkpoint may appear temporarily, but disappear from the visible transcript after the task is reopened.
The interrupted turn remains permanently marked inProgress, and the thread remains active. Restarting the app does not clear the state.
Attempting to create a same-directory fork also fails with:
failed to prepare paginated fork: thread-store internal error:
thread history projection for <redacted thread identifier>
expected ordinal 6442, got 6441
Diagnostic identifiers
Exact session/thread and stuck-turn identifiers have been provided privately to OpenAI support.
Stuck turn status: inProgress
Thread status: active
Token/context information
Exact token-limit usage and context-window percentages were not displayed in the Windows app, so I cannot provide reliable numbers. The conversation was long and had undergone at least one automatic context compaction before the crash.
Code snippet
No application-code snippet is applicable because this is a Windows app/thread-store persistence issue triggered by an unexpected crash during an active Codex turn.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the crash and reopen sequence in the ChatGPT Windows app, then inspect the thread-store history projection around the reported ordinal mismatch. The private task and turn identifiers and application logs must be obtained securely from support. Done means the interrupted turn is recoverable, cancelled, or failed without losing later messages, and the task remains forkable or exportable.
Written by the indexing model from the issue text.
Assessment
- Domain
- operating-systems
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100