Skip to content

Deleted conversations remain as stale titles in Windows app Recents #41602

Open

Description

@walfan-Ikaros

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

Powered by Codex & OWL, version 26.825.51511

What subscription do you have?

ChatGPT Plus

What platform is your computer?

Windows 11 x64

What issue are you seeing?

Deleted conversations still remain as stale titles in the Windows desktop app's Recents/sidebar.

I deleted all conversations from ChatGPT Web. The conversations themselves appear to be deleted successfully.

However, the old conversation titles are still visible in the Windows desktop app.

When I click one of these stale titles, the app indicates that the conversation/thread has already been deleted or no longer exists, but the title remains in the Recents list.

I have already tried resetting the Windows app, signing out and signing back in, and restarting the app, but the stale titles remain.

This appears to be a Recents/sidebar metadata or synchronization issue rather than the conversations themselves failing to delete.

What steps can reproduce the bug?

Feedback ID: no-active-thread-01a050a8-2e29-7fd1-8006-efde2bf38fa5

What is the expected behavior?

After a conversation is deleted, its title should also be removed from the Recents/sidebar list.

If all conversations are deleted from the account, the Windows desktop app should synchronize with the server and remove all deleted conversation titles.

Deleted or nonexistent threads should not remain visible as stale entries in Recents.

Additional information

The conversations were deleted from ChatGPT Web using the delete-all-conversations option.

On the web version, the deleted conversations no longer appear.

The issue is limited to the Windows desktop application's Recents/sidebar, where the old titles remain visible even though the underlying conversations no longer exist.

I have already tried:

  • Restarting the app
  • Signing out and signing back in
  • Windows app Reset

The issue still persists.

The stale titles appear to reference deleted/nonexistent threads.

Activity

  1. added
    bugSomething isn't working
    windows-osIssues related to Codex on Windows systems
    sessionIssues involving session (thread) management, resuming, forking, naming, archiving
    on Aug 30, 2026
  2. github-actions commented on Aug 30, 2026

    @github-actions
    Contributor

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

    Powered by Codex Action

  3. AmirRajaian commented on Sep 1, 2026

    @AmirRajaian

    I can reproduce this issue on the Windows desktop app, and I found a local-database workaround that may help identify the root cause.

    Environment

    Windows desktop app
    Package: OpenAI.Codex
    Version: 26.825.6671.0
    Package family: OpenAI.Codex_2p2nqsd0c76g0

    Observed behavior

    Conversations were deleted from ChatGPT Web.
    The deleted conversations continued to appear in Recents in the Windows desktop app.
    The stale entries could not be opened or deleted.
    Resetting the Windows app did not fix the issue.
    Uninstalling/reinstalling the app and clearing its data also did not fix it.

    Local database finding

    I inspected:

    C:\Users<username>.codex\sqlite\codex-dev.db

    The stale ChatGPT conversations were still present in the SQLite table:

    local_thread_catalog

    The affected rows had:

    source_kind = chatgpt
    host_id beginning with chatgpt:
    missing_candidate = 0

    So, importantly, the stale/deleted conversations were not being marked as missing candidates.

    Workaround that successfully fixed the issue

    With the ChatGPT/Codex desktop app completely closed, I backed up the database and removed only the stale conversation rows from local_thread_catalog.

    After reopening the desktop app, the ghost/stale conversations immediately disappeared from Recents.

    I first tested this with a single stale conversation, and it worked. I then removed the remaining stale ChatGPT rows, while preserving the active conversation, and Recents was cleaned successfully.

    This suggests that the Windows desktop app's local local_thread_catalog is not being properly reconciled/cleaned after a cloud ChatGPT conversation is deleted.

    It may also be relevant that missing_candidate remained 0 for these orphaned entries.

    Hopefully this helps narrow down the issue. A future fix may need to invalidate/remove the

  4. ar3-danilo commented on Sep 2, 2026

    @ar3-danilo

    Additional reproducibility information

    I can consistently reproduce this issue on the Windows desktop app.

    The important detail in my case is that this does not appear to be caused only by stale data left from a previous installation.

    What I observed
    I delete a conversation.
    The conversation is correctly removed from the web version of ChatGPT.
    However, the deleted conversation remains visible in the Windows desktop app's chat/Recents list.
    Trying to delete or archive that stale entry from the desktop app fails, since the conversation has already been deleted on the server.
    Logging out, restarting the app, or simply uninstalling and reinstalling the Windows app does not resolve the issue.
    Full local cleanup test

    I found that the only way to completely restore synchronization is:

    Uninstall the ChatGPT desktop app.
    Manually remove all remaining local files/directories related to ChatGPT, OpenAI, and Codex.
    Reinstall the app.

    After doing this, the desktop app and the web version become perfectly synchronized again, and all previously deleted conversations disappear from the desktop Recents list.

    However, the issue is immediately reproducible again:

    Start from this completely clean and synchronized state.
    Delete a new conversation.
    The conversation disappears correctly from the web version.
    The same conversation remains in the Windows desktop app.
    The stale entry cannot then be successfully deleted from the desktop app.

    So the cleanup fixes the existing stale state, but the next normal conversation deletion creates the problem again.

    This suggests that the local Recents/thread catalog can be rebuilt correctly from the server, but the desktop client is failing to invalidate/remove the local entry when a conversation is deleted.

    In other words, this appears to be an active synchronization/reconciliation bug in the deletion flow, rather than only corruption from an older installation.

  5. guojiansuo commented on Sep 9, 2026

    @guojiansuo

    Additional reproduction on Windows with desktop release 26.903.61454 (from app logs), observed 2026-09-09.

    Eight stale ChatGPT conversation entries remain visible in the desktop Recents/sidebar. The user reports that clicking all eight produces the localized error 无法加载此chatgpt对话 (unable to load this ChatGPT conversation), and the entries cannot be removed through desktop archive/delete actions.

    Sequence and evidence:

    • The user initially deleted conversations from the mobile app and restarted the desktop app, but stale entries remained.
    • Four of the affected conversations could still be opened using their direct chatgpt.com URLs during diagnosis. They were explicitly deleted through the web confirmation dialogs; the web UI returned home after each deletion and subsequently displayed Conversation has been deleted. Start a new chat. for a deleted URL.
    • The user still sees eight invalid entries in the desktop sidebar after that cleanup.
    • A successful desktop list_threads request using limit: 50 does not include those four known IDs, and its chats/Tasks section returns itemKeys: [], while the visible sidebar reportedly retains the stale entries. This is a discrepancy between the tool's returned inventory and the user-visible list, not proof of the underlying cache implementation.
    • Desktop logs around 2026-09-09 15:00 UTC show attempts to initialize affected conversations returning HTTP 404 with errorCode=conversation_inaccessible and can_retry=false on POST /conversation/init.

    Expected: reconcile Recents with deleted/inaccessible conversation state, and provide a way to remove orphaned entries even when the conversation itself can no longer load.

    No raw logs, conversation bodies, private titles, account identifiers, or conversation IDs are included in this public comment. The precise cause (local persisted metadata versus remote Recents synchronization) has not been established.

  6. guojiansuo commented on Sep 9, 2026

    @guojiansuo

    Follow-up to my previous reproduction comment: the affected user moved the eight stale entries into a custom sidebar section named ?, making the orphaned references directly observable through the desktop app tool.

    Fresh verification on 2026-09-09:

    • A successful list_threads({limit:50}) response contains that custom section with exactly 8 distinct chatgpt:conversation:<id> itemKeys.
    • The eight referenced IDs do not appear in the returned thread records (which are limited to 50 recent entries; absence alone is not proof of deletion).
    • Four of these section references match the four conversations explicitly deleted through chatgpt.com in the earlier reproduction.
    • Calling read_thread individually for all eight IDs returns No Codex thread found ... Hosts without a readable match: local. This error is a tool lookup/fallback result, not independent proof that all eight cloud conversations are deleted.
    • The user reports the same eight entries cannot be opened in the desktop UI and display 无法加载此chatgpt对话.

    This confirms that sidebar section membership retains references to at least four known-deleted conversations, and that those stale entries can still be moved into a custom section. Moving them groups the problem but does not repair the underlying conversation access.

    Suggested investigation: reconcile sidebar section membership / Recents references with conversation deletion and inaccessible-conversation handling, including custom sections. Please provide a supported way to remove orphaned sidebar references without resetting unrelated local projects or task history.

    Private conversation IDs, titles, contents, account information, and raw logs remain omitted.

  7. jonesjl commented on Sep 10, 2026

    @jonesjl

    This is also happening in the Linux version as well. See Feedback no-active-thread-01a08b4d-c05a-7110-83a0-514f9db0036d. Linux desktop app retains chats in Recents after they are deleted through the web interface. Opening those entries reports that the conversation couldn’t be retrieved. Fully quitting/reopening and signing out/in do not remove the entries.

  8. zs2932634802-blip commented on Sep 11, 2026

    @zs2932634802-blip

    I can reproduce this on Windows with current desktop packages:

    • ChatGPT Desktop package: 1.2026.190.0
    • Codex package: 26.903.9818.0
    • Observed: 2026-09-12

    Behavior:

    1. ChatGPT mode in the desktop sidebar continues to show many stale conversation titles.
    2. Selecting an affected item shows "Unable to load this ChatGPT conversation".
    3. Archive and delete actions do not remove the item.
    4. Fully quitting/relaunching and signing out/in do not fix the stale entries.
    5. Other valid cloud conversations remain readable, so the account connection itself is working.

    This looks like the desktop Recents/sidebar index retaining references that no longer resolve to manageable conversation objects.

    A full Windows app Reset is not an acceptable workaround for this case because the user needs to preserve other local Codex conversations and local app state. Please add a safe self-healing path or a per-entry "remove stale reference" action that does not require loading the underlying conversation or clearing all local state.

    No conversation titles, conversation IDs, screenshots, or account information are included for privacy.

  9. OKJOIZJ commented on Sep 15, 2026

    @OKJOIZJ

    Additional Windows evidence from ChatGPT desktop / OpenAI.Codex MSIX 26.908.9136.0 x64:

    This is not limited to the “Delete all chats” operation. The same stale-entry behavior occurs whenever a conversation is deleted on ChatGPT Web—including an ordinary deletion of a single conversation—but the Windows desktop app has already indexed it. The account-wide deletion merely made the failure visible at large scale.

    For the large-scale reproduction, I used Delete all chats on ChatGPT Web for a long-lived account with a large history. A fresh web session showed no old conversations, while the Windows desktop sidebar still showed hundreds of old titles. Delete and Archive both failed for those entries. A full desktop restart and Chromium HTTP-cache refresh did not change the list.

    The single-conversation reproduction is:

    1. Let a ChatGPT conversation appear in both ChatGPT Web and the Windows desktop sidebar.
    2. Delete only that conversation on ChatGPT Web.
    3. Return to the desktop app and wait for normal synchronization or relaunch it.
    4. The deleted conversation can remain as a ghost sidebar entry.
    5. Delete or Archive from the desktop app then fails because the source conversation is already gone.

    Local catalog evidence

    The stale sidebar metadata was present in:

    %USERPROFILE%\.codex\sqlite\codex-dev.db
    table: local_thread_catalog
    

    Before repair:

    • 925 rows belonged to a host with host_kind='chatgpt' and had source_kind='chatgpt'.
    • 14 unrelated local Codex rows were present.
    • The ChatGPT catalog sync state had initial_build_complete=1.
    • PRAGMA integrity_check returned ok.

    After making a complete SQLite backup, I performed a narrowly scoped local recovery: recorded the 925 known stale (host_id, thread_id) pairs, deleted only those ChatGPT catalog rows, and incremented catalog_revision. The stale sidebar list cleared after relaunch. The 14 local rows were preserved and the post-relaunch integrity check remained ok.

    As a diagnostic, blocking reinsertion of only those same 925 IDs kept the deleted entries from returning, while newly created ChatGPT conversation IDs were still inserted normally. This is evidence that the persistent unified catalog, rather than the Chromium HTTP cache, was driving the ghost list. Manual SQLite repair is not a suitable product-level solution and should not be required of users.

    Likely failure mode

    The desktop local_thread_catalog appears not to consume or reconcile ordinary per-conversation deletions performed on the web. The same flaw also affects an account-wide delete operation. An incremental catalog can remain marked complete while retaining rows whose source conversations are gone. Please also check whether the desktop history request using hide_snorlax=false can surface legacy/deleted records.

    Confirmed reconciliation mechanism in this build

    Inspection of the packaged main-process bundle shows that the catalog coordinator considers a cold full reconciliation due only when the initial build is incomplete or lastFullReconciliationAt is null. Once a full scan completes, the coordinator records a non-null full-reconciliation timestamp and clears its in-memory fullReconciliationDue flag. Subsequent ordinary and notification-triggered runs select incremental mode while initial_build_complete=1.

    The store's absence handling (missing_candidate) is performed during full scans. Therefore, if a web deletion notification is missed, an already-complete desktop catalog can remain in incremental mode indefinitely and never revisit the deleted ID. This matches the observed persistence across relaunches. The ChatGPT source also appears configured with a 720-hour history horizon, so periodic recent-history sweeps alone may not cover deletions of older conversations; authoritative deletion tombstones are still necessary.

    As a local diagnostic only, setting the ChatGPT host's initial_build_complete to 0, clearing last_full_reconciled_at, and removing only interrupted-scan checkpoints makes the next app start select a full reconciliation without deleting any catalog rows directly. A copy-of-database test preserved all ChatGPT rows and all unrelated local Codex rows and passed PRAGMA quick_check. This is a workable recovery signal but not a substitute for automatic tombstone delivery and periodic authoritative reconciliation in the product.

    I did not capture the HTTP response from the failing Delete/Archive action in this reproduction, so a 404/410 response is a hypothesis here rather than a confirmed observation. Related reports such as #39989 and #44343 contain direct conversation_deleted evidence.

    Suggested product fix

    1. Reconcile the authoritative server conversation set with local_thread_catalog periodically, on startup, account/login changes, and manual refresh; prune rows that are absent or tombstoned.
    2. Treat Not Found/Gone during Delete or Archive as idempotent success and remove the local catalog row.
    3. Propagate both individual web-deletion tombstones and account-wide deletion events to every signed-in desktop client, invalidating the affected catalog rows immediately.
    4. Add a supported Rebuild ChatGPT conversation index recovery action.

    This is major for affected long-lived accounts because hundreds of stale entries can become permanently visible and individually undeletable.

  10. rockakuworks commented on Sep 20, 2026

    @rockakuworks
    Image

    I’m seeing the same issue on a newer Windows app version.

    Environment:

    • ChatGPT/Codex app version: 26.915.31945
    • Windows 11 Home 25H2
    • OS build: 26200.9457
    • ChatGPT Plus

    The stale deleted-chat titles appear immediately when I launch the Windows app.

    The corresponding chats are already absent from the web version, including Search and Archived chats.

    When I click one of the stale titles, the conversation does not load.

    I have already tried:

    • Signing out and signing back in
    • Windows app Reset
    • Uninstalling and reinstalling the app
    • Leaving the app closed for several hours before reopening

    The issue still persists.

    Feedback session ID:
    no-active-thread-01a0bf98-bfe8-7d50-b38f-f1d051020fd9

    I’m a Japanese user.

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, archivingwindows-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