Skip to content

[Windows App 26.901.6511.0] Recent chat history disappears; read_thread stays stale while rollout retains newer messages #44035

Open

Description

@ashjo42

What version of the Codex App are you using (From “About Codex” dialog)?

Installed Windows package: OpenAI.Codex 26.901.6511.0 (queried with Get-AppxPackage; not copied from About).
The executable used by the running app server reports codex-cli 0.153.4.

What subscription do you have?

Not collected for this report.

What platform is your computer?

Windows x64, OS version 10.0.26200.
Local Codex task in a Git workspace; PowerShell.
Observed on 2026-09-09, UTC+08:00.

What issue are you seeing?

Recent conversation history disappeared from the user's view during a long-running local Codex Desktop task. A read-only check also found a concrete discrepancy: the app's read_thread tool returns an older task turn as the newest turn, while the indexed JSONL rollout for the same task still contains later user messages and continues receiving records.

The user can still send messages and the agent can continue work, but the returned history does not include the later conversation. This report establishes missing/stale exposed history, not confirmed deletion of the underlying conversation data.

Sanitized evidence

The task identifier was obtained from CODEX_THREAD_ID and used for both the app-tool read and the exact SQLite row lookup. Identifiers and message contents are omitted from this public report.

At 2026-09-09T03:39:16Z, a read without a pagination cursor returned:

{
  "request": {
    "turnLimit": 1,
    "includeOutputs": false
  },
  "threadStatus": "active",
  "page": {
    "order": "newest_first",
    "limit": 1,
    "hasMore": true
  },
  "newestReturnedTurn": {
    "status": "inProgress",
    "startedAtUtc": "2026-09-08T17:07:19Z",
    "completedAt": null
  }
}

The returned turn contains an older feature request and only its initial work items. A separate read with turnLimit: 3 returned that same stale newest turn and two earlier turns.

A read-only state_5.sqlite lookup and inspection of its referenced rollout showed:

  • The task row exists and archived = 0.
  • The referenced rollout exists and was approximately 54.7 MB.
  • A later user message is present as a top-level response_item user message at 2026-09-08T19:41:38.751Z, ordinal 3621.
  • The user's report of missing history is present as a top-level response_item user message at 2026-09-09T03:12:55.553Z, ordinal 6127.
  • The tail contains valid JSON records through 2026-09-09T03:39:22.786Z, ordinal 6186.

Those message checks inspected actual user-message records, not text quoted inside tool output. The full transcript was not uploaded.

What steps can reproduce the bug?

This is a captured occurrence, not yet a deterministic minimal reproduction:

  1. Use a local Codex Desktop task over an extended development session, with multiple follow-up messages and tool calls.
  2. Continue sending messages after earlier work.
  3. Observe that recent conversation history is missing from the task view.
  4. Read the same task with the app's read_thread tool, no cursor, and turnLimit: 1 or 3.
  5. Observe that the newest returned turn is from an earlier request.
  6. Inspect only that task's indexed rollout read-only; later user messages are still present.

The exact action that first triggered the divergence is unknown. A restart, update, compaction, or migration has not been established as the cause.

What is the expected behavior?

The task view and history-reading API should expose the latest persisted conversation in the correct order. If history loading or indexing fails, the app should show an actionable error and provide a safe way to reload/rebuild the visible history without losing the underlying transcript.

Additional information

  • Two app-tool reads showed the same stale latest-turn boundary.
  • No session files were moved, no SQLite records were edited, and the app was not restarted during this investigation.
  • The symptom suggests a divergence somewhere between persisted rollout data and exposed history, but the responsible layer has not been localized.
  • Related report Paginated history drops valid flattened rollout records and reuses ordinals #35746 concerns paginated history/projection inconsistencies. The same root cause has not been established here.
  • The task remains usable for new agent work; losing the conversation trail makes it difficult to review previous decisions and completion reports.

Activity

  1. added
    bugSomething isn't working
    appIssues related to the Codex desktop app
    windows-osIssues related to Codex on Windows systems
    app-serverIssues involving app server protocol or interfaces
    on Sep 9, 2026
  2. howieab2-svg commented on Sep 9, 2026

    @howieab2-svg

    Additional occurrence on Windows desktop, reported on 2026-09-09 (UTC+08:00). Posting this diagnostic summary at the affected user's request.

    User-reported symptom: Parts of an ongoing, multi-day conversation repeatedly appear to disappear, making it difficult to revisit decisions and completed deliverables. The task remains usable for new messages.

    Checks performed in this occurrence:

    • A read of the current task through the app's read_thread tool surfaced much older conversation content, inconsistent with recent work.
    • The corresponding local session JSONL still contained later actual user/assistant message records. A text-only export through the complaint recovered 37 user messages and 26 final assistant replies, including recent completed work.
    • Recent generated images, written specifications, and the delivery archive remained present on disk.

    This establishes retained local content alongside the reported incomplete history. It does not establish deletion, a particular projection/indexing failure, or the exact cause of the read_thread discrepancy. Pagination behavior and the first triggering action have not been isolated, and a deterministic minimal reproduction is not available. The installed app version was not reliably captured for this occurrence.

    Exporting the existing public-facing messages to local HTML/Markdown provided access to the work, but did not repair the in-app history. The user is asking for this recurring issue to be investigated. This comment contains only a diagnostic summary; no private conversation text, project files, session identifiers, or raw logs are attached.

  3. astral303 commented on Sep 9, 2026

    @astral303

    I am pretty sure this is a duplicate of #35746. All chat history is now "paginated."

  4. Sam-24-dev commented on Sep 9, 2026

    @Sam-24-dev

    Additional sanitized reproduction from Windows on 2026-09-09. This looks consistent with the stale-history / retained-rollout behavior described here.

    Environment / surfaces observed:

    • Windows x64
    • Codex CLI 0.153.3
    • Codex VS Code extension
    • Codex Desktop app
    • Same long-running local thread originally created in July 2026

    Observed behavior:

    1. The thread is still listed normally in codex resume --all.
    2. Reopening the same thread in VS Code, Desktop, or CLI reconstructs only older conversation content (roughly the midnight-era state), while turns from late morning / around noon on 2026-09-09 are absent from the visible history.
    3. A read-only filesystem check found the corresponding rollout-*.jsonl still present and recently written. The file was ~142.9 MB and its latest timestamp reached 2026-09-09T17:25:41.030Z.
    4. A second read-only check filtered actual top-level response_item messages with role=user|assistant from the rollout. It confirmed real user/assistant turns from approximately 11:56 through 12:25 local time (UTC-5), including the most recent work that is missing from the reconstructed UI/CLI history.
    5. No JSONL or SQLite files were edited, moved, deleted, or repaired during these checks.

    This therefore appears to be retained canonical transcript data + stale/incomplete reconstructed history, not deletion of the recent messages. The fact that the same stale boundary is visible in VS Code, Desktop, and CLI may help narrow this below the individual UI layer (for example history projection/indexing/app-server/session reconstruction).

    One secondary observation: while another Codex surface still had the thread open, CLI resume initially returned thread already has an active writer (code -32600); after closing the other surfaces, the thread could be resumed, but the recent history was still missing. I mention this only as context, not as a claimed cause.

    No private conversation text, usernames, project paths, thread/session IDs, credentials, or raw logs are included here.

  5. lolson777 commented on Sep 10, 2026

    @lolson777

    Additional sanitized occurrence on a newer Windows build, posted at the affected user's explicit request.

    Environment

    • Codex Desktop AppX: OpenAI.Codex 26.903.8094.0
    • Windows 11 Pro x64, OS version/build 10.0.26200
    • One long-running local task used for multi-day development work

    Observed behavior

    • Several complete user/assistant exchanges are missing from the visible history inside the same task.
    • A read through the app's read_thread interface returns a September 8 turn as the newest turn, marked inProgress, with only three items and an early command failure.
    • The exact local rollout JSONL continues well beyond that boundary. Its tail contains a later final assistant response at 2026-09-09T22:22:21.915Z, followed by task_complete at 2026-09-09T22:22:22.530Z, and a later task_started record at 2026-09-10T00:23:54.260Z.
    • Independent source-control and deployed-output records also confirm that substantive work occurred after the stale boundary returned by read_thread.
    • The rollout is unusually large: 1,500,237,404 bytes. That may be useful diagnostic context, but it is not established as the cause.

    This confirms a discrepancy between persisted task records and the history exposed by the app; it does not establish deletion of the underlying messages or identify the faulty layer.

    Expected
    All persisted user-visible exchanges should remain accessible in the task UI and through task-history reads. If reconstruction/indexing fails, the app should show a recoverable error and provide a safe reindex/rebuild path.

    No raw transcript, task ID, private project text, credentials, business screenshots, or local paths are included. The affected user can provide narrowly scoped diagnostics through a private support channel if maintainers specify what is needed.

  6. tang-t21 commented on Sep 10, 2026

    @tang-t21

    The same bug, history is in jsonl file, but UI doesn't show the latest turn.

  7. mikehudson2 commented on Sep 10, 2026

    @mikehudson2

    Additional confirmed Windows reproduction with the projection layer localized. I investigated this occurrence at the affected user's request.

    1. Environment

      1. Current executable: codex-cli 0.153.4.
      2. The task metadata records creation under 0.149.0-alpha.4.1.
      3. Long-running local Codex Desktop task in a Git workspace on Windows.
    2. Canonical rollout remains intact

      1. The JSONL was 589,188,642 bytes at inspection time.
      2. It contained 108,528 valid records and 193 compacted records.
      3. Later user messages, final assistant messages, and matching task_complete events are present well beyond the point exposed by the UI/history API.
    3. Materialized history is stale

      1. thread_history_projection_state stopped with next_rollout_ordinal = 106921 and byte offset 571834233.
      2. thread_turns contains 1,266 projected turns, with its latest completed turn ending at ordinal 106920 at 2026-09-10T11:14:04Z.
      3. A cursor-free read_thread request with order = newest_first returns that older turn as newest, while the canonical JSONL contains many subsequently completed turns.
    4. The internal log gives a concrete failure

    failed to project durable rollout: thread history projection expected ordinal 106930, got 106929

    This warning was emitted 456 times during the read-only investigation and continued after restarting the app. No SQLite or JSONL files were edited.

    1. This appears to establish the same boundary-ordinal failure described in Paginated history drops valid flattened rollout records and reuses ordinals #35746, which predicts a replayed boundary at next_ordinal - 1 that permanently blocks projection catch-up. It also localizes this issue below selective UI rendering: the canonical writer succeeds, while the durable-history projection rejects the suffix and read_thread serves the stale projection.

    2. User impact

      1. Recent visible conversation disappears even though it is durably stored.
      2. The agent's history reader receives stale turns and can reconstruct prior decisions incorrectly.
      3. Restarting Codex does not repair the projection.

    No raw transcript, message text, task ID, credentials, local username, or project path is included. A supported projection rebuild/recovery path would be valuable for already-affected tasks.

  8. Whitelaughter commented on Sep 11, 2026

    @Whitelaughter

    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.

  9. BradleyElder commented on Sep 13, 2026

    @BradleyElder

    Additional sanitized Windows occurrence on Codex Desktop 26.908.4834.0.

    During a session wrap, the assistant emitted a completed timeline item containing a Markdown start prompt with a fenced text block. The local rollout was approximately 41 MB. Read-only inspection confirmed that the exact assistant output_text item was persisted, followed by task_complete.

    The user reported immediately afterward that the item was not visible in the desktop timeline. Two subsequent minimal fenced-code-block tests were also emitted and remained invisible, including after leaving voice mode. Later ordinary replies continued to render, so the task itself remained usable.

    For a direct comparison, the same small fenced code block was saved as a Markdown workspace file and opened in Codex's right side panel. The user confirmed that it rendered visibly there. This narrows the observed failure: the Markdown/code-block content is renderable in the side panel, but the corresponding emitted inline timeline items are absent from the conversation view.

    This establishes persisted assistant output plus a timeline-specific visibility failure; it does not establish deletion or the responsible layer. The current conversation had no matching Turn not found for event entry in the checked logs. Two nearby errors with that wording belonged to an auto-compaction event in another conversation, so they are not attributed to this occurrence.

    No session database or rollout file was modified. Private prompt content, project details, local paths, and task identifiers are omitted. The exact start prompt remains recoverable from a Git-tracked handoff file.

  10. humiao commented on Sep 19, 2026

    @humiao

    Additional macOS evidence for the same stale-history symptom.

    Environment:

    • Codex App: 26.915.31945, build 9922
    • Bundled CLI: codex-cli 0.155.0-alpha.9.2
    • Platform: Darwin 25.5.0, Apple Silicon arm64
    • Observed: September 19, 2026

    In a long-running local desktop task, the visible conversation history stopped at an older prefix. A read-only history request with newest-first ordering also returned old turns instead of the most recently persisted turns.

    Sanitized local verification found:

    • The task had been continued across six rollout JSONL files.
    • All inspected rollout files parsed successfully, with no malformed JSON records.
    • Later user and assistant messages were still present in the durable rollout files.
    • The latest affected rollout contained more than 2,000 valid records and continued well beyond the newest turn exposed by the UI/history-reading path.
    • Desktop logs showed successful thread/turns/list and repeated thread/items/list responses with no returned error code, but the later conversation still did not appear in the task UI.
    • No session files or SQLite records were modified during diagnosis.

    I also checked for the ordinal discontinuity described in #45010. No within-file ordinal gaps or duplicate adjacent ordinals were found in the six inspected rollout files, so I cannot confirm that this occurrence has the same root cause.

    Expected behavior:

    • The desktop UI and read-only history APIs should expose the latest persisted turns across continued/split rollout files.
    • If the history projection is incomplete, the app should show an explicit warning instead of silently presenting an older prefix as the complete latest history.
    • The app should provide a supported, non-destructive way to rebuild or refresh one task’s visible history.

    Privacy note: no task IDs, usernames, private paths, project names, transcript content, screenshots, databases, or raw logs are included.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appapp-serverIssues involving app server protocol or interfacesbugSomething isn't workingwindows-osIssues related to Codex on Windows systems

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions