Skip to content

[Desktop] Long conversations show only recent turns after update although full rollout history remains local #31995

Open

Description

@xiaoliuxiaoliu

Summary

After updating to the ChatGPT desktop app that includes Codex, opening existing long conversations shows only the most recent turns. Older turns are not accessible in the conversation UI, even though the complete rollout files remain present and the app-server successfully pages through stored turns.

This reproduces across multiple existing long conversations and looks like a Desktop transcript hydration/rendering regression rather than data loss.

Environment

  • Product: ChatGPT desktop app with Codex
  • Desktop app version: 26.707.31428
  • Bundled Codex version: codex-cli 0.144.0-alpha.4
  • OS: macOS 15.7.3
  • Architecture: arm64
  • Local thread history mode: existing threads are marked legacy

Steps to reproduce

  1. Have one or more existing Codex conversations with substantial history.
  2. Update to the ChatGPT desktop app build above.
  3. Open an existing long conversation.
  4. Scroll upward and try to reach the beginning of the transcript.
  5. Only the recent portion of the conversation remains visible; earlier turns cannot be reached.

Expected behavior

The complete stored conversation should be viewable. Incremental history loading may be used for performance, but all older pages should eventually be merged into the transcript while preserving a usable scroll position.

Actual behavior

Only the recent turns are rendered in the conversation view. The UI behaves as if older history is unavailable, even though the storage and app-server layers still contain and return it.

Local diagnostics

The following checks were performed without modifying any Codex data:

  • PRAGMA integrity_check on ~/.codex/state_5.sqlite: ok
  • Thread rows in the state database: 1,504
  • Corresponding rollout files found: 1,504
  • Missing rollout files: 0
  • Empty rollout files: 0
  • Active session storage: approximately 1.9 GB
  • Archived session storage: approximately 705 MB
  • A threads history mode migration was applied during the update; all existing rows currently report history_mode = legacy
  • Desktop logs recorded 40 successful thread/turns/list responses with errorCode=null
  • No Failed to load older thread turns or Failed to load remaining thread turns after resume messages were found
  • The renderer repeatedly logged:
    ResizeObserver loop completed with undelivered notifications.
  • In one long-conversation window, 21 successful history-page responses were followed by 129 of those renderer errors

This suggests the rollout reader and pagination API are working, but the Desktop renderer or virtualized transcript state is not reliably exposing the hydrated older turns.

Suggested areas to inspect

  • Merging thread/turns/list pages into canonical transcript state
  • Virtualized-list scroll anchoring when older pages are prepended
  • Whether repeated ResizeObserver errors prevent older entries from becoming reachable
  • Compatibility between history_mode = legacy, tail hydration, and canonical turn history
  • A visible recovery/loading state when older turns cannot be rendered

Related issue

#21211 discusses large-thread hydration and rendering performance, but this report is specifically about successful history-page responses not becoming accessible in the Desktop transcript.

Raw session transcripts and full logs are intentionally not attached because they may contain sensitive data. Sanitized excerpts can be provided if needed.

Activity

  1. added
    bugSomething isn't working
    appIssues related to the Codex desktop app
    sessionIssues involving session (thread) management, resuming, forking, naming, archiving
    on Jul 10, 2026
  2. github-actions commented on Jul 10, 2026

    @github-actions
    Contributor

    Potential duplicates detected. Please review them and close your issue if it is a duplicate.

    Powered by Codex Action

  3. xiaoliuxiaoliu commented on Jul 10, 2026

    @xiaoliuxiaoliu
    Author

    I reviewed #31047 and believe this is a different failure mode. In #31047, existing threads render completely blank and the report includes intermittent SIGKILL crashes. In this issue, existing long threads open successfully and recent turns render normally, but older paginated turns cannot be reached. The thread/turns/list requests complete successfully, and no thread-loader failure or crash was observed.

    This appears to be a transcript hydration/virtualized-rendering issue rather than a blank-thread or process-crash issue. If maintainers determine that both share the same root cause, I am happy to consolidate this report.

  4. caokaizz commented on Jul 30, 2026

    @caokaizz

    I can confirm the same failure mode on another long local Codex Desktop thread.

    Additional diagnostics

    • Platform: macOS
    • The thread was created by Codex Desktop with bundled Codex 0.146.0-alpha.3.1
    • Thread metadata reports history_mode: legacy
    • The rollout JSONL is intact: 13,009,678 bytes / 2,383 lines
    • It contains 11 completed task turns, 11 user messages, and 61 agent messages
    • The thread underwent 2 context compactions
    • The final three agent messages (written one minute apart at the end of the run) are still present in the rollout JSONL, but are not visible in the Desktop transcript
    • The stored thread can still be inspected through the app's thread-reading API, confirming this is not data loss
    • No rollback event exists in the rollout, so the deprecated thread/rollback warning appears unrelated
    • Copying the missing final messages into a new task in the same project makes them display normally

    Expected behavior: every stored user/final-agent message should remain reachable in the Desktop conversation, including the tail of a long legacy thread after compaction.

    I am intentionally not attaching the raw transcript or local paths because they contain private project information. Sanitized event summaries can be provided if useful.

  5. nos1609 commented on Aug 28, 2026

    @nos1609

    Additional sanitized Remote SSH reproduction on current Codex Desktop for Windows.

    The Desktop transcript again omitted task text, but the supported task-reading path showed that the data was still present:

    • the affected remote task was idle;
    • an explicit-host fresh read_thread returned the recent turns;
    • recent item counts were 27, 15, 71, 2, 3, 5, 15;
    • every recent completed turn included its persisted final assistant message;
    • pagination over the latest ten turns found no empty completed turn.

    This narrows the failure to Desktop transcript hydration/rendering. It is not missing model output, an empty rollout turn, a wrong-host lookup, or a stale native task projection. The failure also affects recent text in a Remote SSH-backed task, not only old pages in a local legacy conversation.

    Environment:

    • Codex Desktop package: 26.825.4187.0
    • renderer telemetry release: codex@26.825.32147
    • Windows 11 ARM64
    • remote Codex CLI/app-server: 0.150.1

    Expected: all items returned by the supported task reader should remain visible in the Desktop transcript.

    No thread IDs, turn IDs, paths, hostnames, addresses, repository names, prompts, credentials, account data, or raw transcripts are included.

  6. sinadarvi commented on Aug 31, 2026

    @sinadarvi

    Additional sanitized reproduction from Codex Desktop on macOS:

    • Affected task: 01a05285-49c2-7f62-bccd-606b2470e6cb
    • Local rollout still contains 27 completed task events (7,005 total JSONL records at audit time).
    • The Desktop task reader/transcript exposed only the recent portion and previously reported no additional page, while the local records remained present.
    • Renavigating to the task and renaming it did not restore the missing turns.
    • The task was long-running, tool-heavy, and had undergone compaction.
    • The missing UI history caused the assistant to miss earlier instructions.

    Expected: every completed user and assistant turn remains visible and paginatable after compaction.

    Actual: earlier completed turns disappear from the Desktop transcript/index even though their local records remain present.

    This appears consistent with transcript hydration/pagination/rendering behavior rather than data loss. No raw message content, repository data, paths, credentials, or log attachment is included.

  7. rowbradley commented on Sep 4, 2026

    @rowbradley

    Confirming that this persists on a newer ChatGPT Desktop build and is causing material loss of visible working context.

    Environment:

    • ChatGPT Desktop 26.901.22334, build 7746
    • Bundled codex-cli 0.153.0
    • macOS 15.7.9 build 24G830, arm64
    • Affected thread uses history_mode=paginated, unlike the original report's legacy history

    Symptom:

    Previously visible portions of a task disappear from the transcript UI. I have seen this across multiple tasks, including shorter tasks, so it does not appear limited to context compaction or exceptionally long transcripts.

    Read-only local diagnostics on one affected task:

    • PRAGMA integrity_check on ~/.codex/state_5.sqlite: ok
    • The task remains indexed and unarchived
    • Its JSONL transcript remains present and contains the earlier messages that disappeared visually
    • Opening the task produced one successful thread/turns/list response and four successful thread/items/list responses, all with errorCode=null
    • No older-turn loading errors appeared
    • The same desktop window logged 43 ResizeObserver loop completed with undelivered notifications errors

    This looks like transcript hydration or rendering failure after successful pagination, rather than data deletion.

    Product impact:

    This is disrupting active work. Decisions and prior instructions disappear from view, making it difficult to verify what was agreed, forcing premature handoffs into new tasks, and reducing confidence that Codex can act as a reliable project record.

    I have not modified or rebuilt the local state database. I can share an affected session through the in-app feedback flow, but I will not post raw transcripts or logs publicly because they contain private project data.

    Could maintainers confirm whether recent history/rendering fixes cover paginated threads as well as legacy threads?

  8. furkancak1r commented on Sep 9, 2026

    @furkancak1r

    Additional report from ChatGPT Desktop on macOS, checked on 2026-09-09.

    The user reports that an existing Codex conversation is present in the app, but the rest of its history does not load.

    Read-only checks on the affected local task:

    • Installed ChatGPT.app version: 26.901.51231, build 8109 (Info.plist).
    • The task's rollout JSONL exists: 129,629,805 bytes, 20,826 lines. All lines parsed as JSON.
    • The app's supported read_thread tool returns recent turns with hasMore: true.
    • Following its pagination cursor successfully returned an older completed turn containing 34 items, again with hasMore: true.
    • September desktop logs contain 54 thread/turns/list lines associated with this task. No matching lines contained "Failed to load older thread turns" or "Failed to load remaining thread turns".

    This supports a similar symptom: persisted history is readable through the task-reading API while the user cannot access the remaining history in the UI. It does not establish the exact renderer/root cause, and I have not independently reproduced the visual failure or verified every history page.

    Expected: the conversation view should expose the persisted older history, or show an actionable loading error.

    Raw transcripts, message contents, private project paths and task identifiers are omitted.

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 appbugSomething isn't workingsessionIssues involving session (thread) management, resuming, forking, naming, archiving

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions