openai / openai/codex

[Bug] Windows app repeatedly loses recent conversation history while messages remain in the local JSONL

Open
#44,362 5 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug session windows-os
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

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:

  1. Continue working in an existing task with a large conversation history.
  2. Complete code fixes, local regression testing, and Git commits.
  3. Continue discussing deployment and on-site acceptance testing.
  4. 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.
  5. Report the missing history and ask the assistant to verify the actual project status.
  6. 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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the read_thread entry point and compare its returned history with the persisted session JSONL, using redacted message records if needed. Investigate the rendering, caching, indexing, pagination, and session-reconstruction paths mentioned in the report; done means the app and thread reader consistently show the latest persisted messages in order.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.