Repository navigation
[Bug] Windows app repeatedly loses recent conversation history while messages remain in the local JSONL #44362
Description
Description
Recent conversation turns repeatedly disappear from the Codex Windows desktop app. The conversation appears to revert to an earlier stage of the task.
The missing user messages and assistant replies are still present in the local session JSONL. However, reading the same thread through the app's read_thread tool returns older turns and omits the recent messages.
This has happened repeatedly within the same task.
Environment
- OS: Windows
- App version shown in the UI: Powered by Codex & OWL, version 26.903.61454
- Task type: Local task in a Java repository
- Session JSONL size: approximately 962 MB
- Thread ID:
01a08541-da93-7c81-a3e5-0bd6067eff7a
Observed sequence
I do not yet have a minimal, deterministic reproduction. The observed sequence was:
- Continue working in an existing task with a large conversation history.
- Complete code fixes, local regression testing, and Git commits.
- Continue discussing deployment and on-site acceptance testing.
- Notice that several recent conversation turns are no longer displayed. The conversation has returned to an earlier discussion about reproducing and fixing the issue locally.
- Report the missing history and ask the assistant to verify the actual project status.
- After the assistant checks Git and test logs and replies, notice that the recent conversation has disappeared again.
Verified evidence
The following messages were found directly in the session JSONL as response_item / message records.
All times below are September 10, 2026, UTC+8:
| Time | Message retained in the local JSONL |
|---|---|
| 08:49:02 | User reports that several conversation turns are missing |
| 08:49:31 | User asks the assistant to rely on evidence rather than agree with them |
| 08:50:40 | Assistant provides a complete reply after checking Git commits and test logs |
| 09:03:10 | User reports that the recent conversation has disappeared again |
However, calling read_thread for the same thread, without a pagination cursor and requesting the latest turns, returns page.order: newest_first but still lists an older September 9 turn as the latest completed turn.
That older user message asks what to do next and whether other affected business operations need testing. The assistant reply recommends first reproducing and fixing the issue locally—even though the subsequent fixes, tests, and discussion have already happened.
Older turn returned as the latest completed turn:
01a08551-066f-75b0-8bf0-ee17be5699dc
The recent messages listed above are absent from the returned history. This discrepancy was observed in two separate checks.
Expected behavior
The app and thread-history reader should include the latest persisted user messages and assistant replies in the correct order.
Actual behavior
- Recent conversation turns repeatedly disappear from the displayed history.
- The thread-history reader continues to return older turns.
- The latest messages remain in the local session JSONL.
- Task continuation also showed outdated progress assumptions, requiring Git and test-log checks to reconstruct the current state.
Impact
The conversation history cannot be relied on to track completed work, decisions, and next steps. Continuing the conversation does not prevent the issue from recurring.
Unknowns
- I have not identified whether the issue is in rendering, caching, indexing, pagination, or session reconstruction.
- I have not established whether the approximately 962 MB session size is related.
- I have not tested whether restarting the app restores the missing history.
- I do not yet have a reproduction using a small, new conversation.
The full JSONL contains private project information, so I am not attaching it publicly. I can provide redacted message records and thread-read results if needed.
Activity
github-actions commentedon Sep 10, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Whitelaughter commentedon Sep 11, 2026
Possibly related reports, in case they help correlate the failure modes:
#43276 — ordinary Chat conversations can exist in fresh account history but be absent from the desktop local catalogue after the Chat update subscription is unmounted.
#44035 — Windows: newer conversation records remain persisted locally while read_thread exposes stale older history.
#44362 — Windows: recent messages remain in the session JSONL while read_thread returns older turns as newest_first.
#44409 — macOS: recent persisted records similarly exist while reopening/task reading exposes older history.
I also posted independent Windows/web synchronization observations from our RETIS tests in #43276. Those tests distinguish Recents/sidebar visibility, explicit conversation search, persisted conversation state, and information actually retrievable by the assistant.
These may not share one root cause, but the reports seem useful to compare because they independently show divergence between different representations/retrieval paths for conversation history.
elvis-hao commentedon Sep 13, 2026
I am seeing the same issue on the Windows Codex desktop app. The task remains visible with its title, but opening it shows missing or stale history. Recent user and assistant messages are absent from the UI while the original local JSONL rollout still contains the later messages, including the latest plan. The same behavior has occurred across multiple tasks, and the history/read API can return older content while the rollout retains newer content. This looks like a history projection, index, or cursor problem rather than deletion of the underlying rollout. Please investigate the Windows client/app-server history projection and provide a safe reindex or recovery path that does not require editing SQLite or raw rollout files.
Rithmatist commentedon Sep 14, 2026
Codex issue #44362: evidence assessment
Proposed public-facing draft. Public sources checked September 14, 2026.
Scope
This assessment concerns the four claims about reported behavior below from issue #44362. The reported environment was the Windows desktop app, version 26.903.61454, in a local task with an approximately 962 MB session JSONL. Related reports are used to compare observations and assess explanations; they do not independently verify this particular incident.
The inspected record includes #44362’s body, all three comments and public timeline, together with the cited portions of related reports, diagnostic material, source code, a regression test, release notes and CI results. This was a source review: the reported behavior was not independently reproduced, the linked probes and regression test were not executed, and the original private JSONL, complete reader captures and project records were not inspected. The assessment does not establish the behavior’s prevalence or a common cause across reports.
Claims assessed
The propositions selected from the original report are:
read_threadchecks returned an older September 9 turn as newest, omitting later messages.Evidence
Reporter testimony and supplied summaries. The issue describes repeated disappearance during continued work. It supplies four timestamped message summaries from September 10, between 08:49:02 and 09:03:10 UTC+8, and describes the two reader comparisons. These are the reporter’s account of inspecting the records; the public issue does not supply the underlying JSONL messages or complete reader responses for those checks. The reporter explicitly withholds the full transcript because it contains private project information and offers redacted records if needed. Original report
Corroborating reports and supplied diagnostic comparisons.
Automated activity and maintainer confirmation. The duplicate suggestion in #44362 is automated. It does not establish duplication, reproduction or diagnosis. No identified maintainer confirmation of #44362’s cause or resolution appears in its three inspected comments. A relevant merged code change is discussed below. Duplicate suggestion, complete comment collection
Findings
The classifications below are analytical judgments about the cited evidence. SUPPORTED identifies affirmative evidentiary support with the stated limits; it does not mean that the original incident was independently verified.
read_threadchecks returned the older September 9 turn as newest, omitting later messagesNo selected proposition warrants CONTRADICTED on the inspected evidence. The sources supporting these classifications are the original report and corroborating material identified above.
Explanations in the record
Rendering, caching, indexing, pagination, reconstruction, or file size. The original reporter leaves these possibilities unresolved. The record does not isolate any of them as the cause of #44362. Causation: NOT ESTABLISHED. Original unknowns
A decoder/record-ordinal failure blocking history reconstruction. A participant in #44035 supplies projection counters and an ordinal-mismatch warning, and reports later completed turns remaining in the JSONL while the history reader returned older material. The commenter attributes that occurrence to the failure described in #35746. That attribution is a proposed diagnosis, not a demonstrated causal match to #44362. Projection diagnostic
A comment in #35746 supplies a synthetic Windows probe and reports that, on
codex-cli 0.153.4, certain terminal decimal-valued records caused ordinal reuse, while integer-valued controls did not. A decimal-valued record followed by an ordinary message also continued correctly in that fixture. The script and reported results provide technical evidence for the mechanism in those fixtures. The probe was not executed for this assessment, and its author explicitly had not tested a build containing #42378. The same commenter separately reports recovery of one conversation after local record/checkpoint repair and restart, distinguishing that recovery from a runtime fix; it does not establish a fix for #44362. Experiment, script and recovery distinctionPublicly inspectable code, test coverage and release inclusion. Merged PR #42378 routes rollout reads through canonical JSON decoding. Its added regression test writes a decimal-valued token-count record, resumes recording, appends a message and asserts consecutive ordinals. The source establishes what the change and test cover; the test was inspected but not executed for this assessment. The official 0.154.0 release lists the PR. PR, commit-pinned regression test, release notes
The inspected CI run for that commit contains successful and failed jobs, including a failed aggregate required check. Those summaries do not establish the individual regression test’s result or that the decoder change caused the CI failures. CI run, failed required check
These sources support the described decoder/ordinal mechanism in other reported tests and document a relevant code change. Its role in #44362 and whether that change repaired this particular incident remain NOT ESTABLISHED. The original issue does not supply its backend version, a matching boundary-record comparison or a before/after test against that change.
Missing terminal turn events despite populated history. Issue #45431 reports similar Windows symptoms in a fresh 3,409,003-byte rollout, alongside a 2,411,663,360-byte history SQLite database. Its supplied counters indicate projection reached that rollout’s end, and its supplied diagnostics describe populated message records while turns remain
inProgresswithout terminal events. The lifecycle explanation is presented as suspected. This report involving a small individual rollout limits extrapolation of large-rollout or stalled-projection explanations across reports; it does not determine their role in #44362. Causal match: NOT ESTABLISHED. Report and diagnostic valuesOther history paths or concurrent failures. Issue #43276 concerns ordinary Chat synchronization into a desktop catalogue; its Windows/web follow-up expressly does not establish the proposed subscription mechanism as the cause of those observations. Issue #44401 reports queue failures alongside history omission and leaves their relationship unresolved. Neither establishes a common cause with #44362. Catalogue report, Windows/web observations, queue/history report
Update-related recovery. The macOS recovery account supports reported recovery in the conversations that participant checked. It does not isolate the update from the restart, establish lasting resolution or verify a remedy for #44362. A fix for the selected incident: NOT ESTABLISHED. Recovery report
Missing or unresolved evidence
Conclusion
The public record supports a recurring discrepancy between retained local messages and displayed or retrieved history, with corroboration beyond the original reporter. It does not establish #44362’s specific cause, a verified remedy, or its claimed divergence between continuation assumptions and completed project work.
teohsinyee commentedon Sep 15, 2026
Repro + working recovery on Windows
I was able to reproduce this consistently on Windows with:
26.908.708160.154.0Minimal repro
hi 1hi 2Actual result
After restart, only the first turn is visible:
The second turn disappears from both Desktop and
codex resume.However, the underlying rollout JSONL still contains the complete conversation, including the missing second turn.
So in my case, this was not data loss. The canonical session data was still intact.
Recovery that worked
I fully closed Codex Desktop, backed up:
Then I deleted only the affected thread's derived history rows from:
using the affected
thread_id.I did not modify or delete the rollout JSONL.
After that, I ran:
Codex CLI rebuilt the conversation from the existing rollout data and showed the full history again:
After reopening Codex Desktop, the full conversation was restored there as well.
Interestingly, several other previously truncated Desktop conversations also became visible again after this reprojection/reload.
Conclusion
In this case, the issue appears to be in the derived local thread-history/projection state after app restart, rather than in the canonical rollout/session data itself.
It would be very useful to have a supported recovery operation such as:
or a Desktop option like:
so users do not need to modify SQLite manually.
sunkaiyi1221-png commentedon Sep 22, 2026
Additional Windows recurrence on 26.915.4065.0
This issue is still affecting another Windows Codex Desktop user on 2026-09-22.
Get-AppxPackage: 26.915.4065.0This confirms that the missing/stale history symptom still reproduces on a newer Windows build than the versions already documented in this thread. Please prioritize a durable fix and provide a supported recovery action such as rebuilding the derived conversation-history index without deleting canonical rollout data.