You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Windows desktop app: deleted chats remain as stale entries in Recents and can’t be removed #41880
What version of the Codex App are you using (From “About Codex” dialog)?
Version 26.825.51511
What subscription do you have?
Pro
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What issue are you seeing?
Product/Surface: ChatGPT surface in OpenAI Windows desktop app (OpenAI.Codex)
OS: Windows 11 Pro build 26200
App package: OpenAI.Codex 26.825.6671.0
App version: 26.825.51511
Network: No VPN
Summary:
Deleting a chat from Recents can fail for some entries within the list for seemingly no reason. At times the Windows desktop app will show a error "Failed to Delete Chat" as a red slide down message at the top of the screen. The chat list item remains in the "Recents" section in ChatGPT mode. This can occur for chats within the list that have no error icons next to the chat name, but also can occur for chats that do have a red "info" icon showing up next to the chat name in the Recents list.
Steps to reproduce:
Open ChatGPT in the Windows desktop app
Select a chat under Recents (example: “Lease Repair Options”)
Delete → confirm “Delete chat”
Chat sometimes remains in Recents
Click the stale entry or try deleting it again
Expected:
Chat disappears from Recents immediately and stays removed.
Actual:
Stale chat remains in Recents and cannot be removed. Errors include:
“Could not load this ChatGPT conversation”
“Failed to delete chat”
{"detail":{"message":"Conversation has been deleted. Start a new chat.","code":"conversation_deleted","can_retry"}}
Frequency/Impact:
Intermittent; long-standing; leaves unusable “dead” items in Recents and creates confusing load/delete failures.
Troubleshooting attempted (no fix):
Force quit/relaunch, Sign out/in, Update desktop application
Attachments:
3 screenshots (delete confirmation; stale entry with failures; server response confirming conversation already deleted).
What steps can reproduce the bug?
Feedback ID: 01a05899-f74e-7b71-988a-e4a6a1d1fc4e
What is the expected behavior?
Chat disappears from Recents immediately and stays removed.
I can independently reproduce this issue on Windows 11 in the ChatGPT surface of the OpenAI desktop app.
Two conversations that were already deleted still appear in the desktop client sidebar, while neither appears in the ChatGPT web sidebar. Opening the stale entries shows Unable to load conversation or Conversation not found.
Affected conversation IDs (redacted):
6a996dbc-…-af12
6a996b5b-…-5fa2
One of the stale entries also appeared twice in the client list. This strongly suggests stale local catalog/sidebar state or a synchronization/invalidation failure after the underlying cloud conversations were deleted.
In my case, I deleted several ChatGPT conversations using the browser interface while spending a few hours reorganizing my chats into ChatGPT Projects.
Four deleted conversations remained permanently visible under Recents in the Windows desktop app.
For each affected entry:
The conversation no longer exists on chatgpt.com.
Clicking it in the desktop app gives “Could not load this ChatGPT conversation”.
Attempting to delete it from the desktop app gives “Failed to delete chat”.
Restarting the desktop app does not remove the stale entries.
Other newly created/deleted conversations behave normally.
I submitted feedback from the desktop app while one of the affected entries was selected.
One additional observation may help narrow this down.
Before the current four stale entries were created, I had reproduced a broader browser → Windows Desktop synchronization problem repeatedly: conversations deleted through the browser would remain visible in the Desktop app.
That general behavior was fixed by a Desktop app update a couple of days later. Newly tested conversations then synchronized correctly.
However, these four conversations, which had already become stale during the affected period, survived the update and remain permanently visible in Recents.
This suggests the current delete/synchronization path may already have been fixed, while previously-created orphaned Recents entries are not being reconciled or garbage-collected.
The four affected conversations were deleted during a several-hours-long operation in which I was also reorganizing many conversations into ChatGPT Projects, so project-membership/history may additionally be relevant.
I am experiencing exactly the same issue with OpenAI.Codex package 26.825.6671.0 on Windows 11 25H2.
The affected chats are already deleted server-side and no longer appear in the web or mobile apps, but remain as stale entries in Recents in the Windows desktop app. Clicking them results in “Could not load this ChatGPT conversation”.
If I delete a ChatGPT conversation from the web version or another device, the conversation sometimes remains visible in the desktop app.
When I click the stale conversation, the app shows:
“Unable to load this ChatGPT conversation.”
If I then try to delete the conversation from the desktop app, it shows:
“Failed to delete chat.”
The conversation has already been deleted successfully on the server/web side, but the desktop app keeps a stale/ghost entry and cannot remove it.
Steps to reproduce:
Have the same ChatGPT account signed in on the desktop app and Web/another device.
Delete a conversation from ChatGPT Web or another device.
Return to the desktop app.
The deleted conversation may still appear in the conversation list.
Click it → the conversation cannot be loaded.
Try to delete it → “Failed to delete chat.”
Expected behavior:
When a conversation has already been deleted server-side, the desktop app should automatically remove the stale entry from its conversation list. A conversation_deleted / 404 response should also be treated as successful deletion for purposes of cleaning up the local UI.
I can reproduce this consistently on the Windows desktop app, and I did some additional inspection of the local SQLite catalog / WAL that may help narrow down the issue.
Reproduction
Create a conversation on mobile.
Confirm that it appears in the Windows desktop app.
Delete the conversation on mobile.
The conversation remains visible in the Windows "Recents" list.
Clicking it results in "Could not load this ChatGPT conversation".
Deleting the same stale entry again from the Windows app finally removes it.
Reinstalling the Windows app did not resolve the issue.
Local catalog observations
The desktop app stores the conversation catalog in:
%USERPROFILE%\.codex\sqlite\codex-dev.db
The stale conversation is present in local_thread_catalog.
For one older ghost conversation, I observed:
missing_candidate = 0
After a later full reconciliation, the same row changed to:
missing_candidate = 1
However, the row was still retained in local_thread_catalog, and the conversation continued to appear in Recents.
This suggests that the reconciliation process can detect that the conversation is missing from the server, but does not immediately prune the local catalog entry.
I also tested a fresh conversation while inspecting the SQLite WAL:
mobile create
→ desktop receives the conversation
mobile delete
→ desktop catalog still retains the conversation
desktop delete
→ local_thread_catalog entry is removed
So the local cleanup path seems to work when deletion is initiated from the desktop itself, but not when the deletion originates from another client.
Possible fix direction
It may be worth treating an authoritative server-side "conversation deleted / does not exist" result as an idempotent deletion success and cleaning the local catalog entry immediately.
For reconciliation cases where the conversation is only absent from a listing, missing_candidate still makes sense as a two-step safety mechanism. But if the server explicitly confirms deletion, the entry probably should not remain as a ghost item.
This looks less like a rendering issue and more like incomplete cross-client deletion reconciliation between the server state and local_thread_catalog.
Activity
github-actions commentedon Aug 31, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
lwchang018 commentedon Sep 7, 2026
I can independently reproduce this issue on Windows 11 in the ChatGPT surface of the OpenAI desktop app.
Two conversations that were already deleted still appear in the desktop client sidebar, while neither appears in the ChatGPT web sidebar. Opening the stale entries shows
Unable to load conversationorConversation not found.Affected conversation IDs (redacted):
6a996dbc-…-af126a996b5b-…-5fa2One of the stale entries also appeared twice in the client list. This strongly suggests stale local catalog/sidebar state or a synchronization/invalidation failure after the underlying cloud conversations were deleted.
oshonsoft commentedon Sep 9, 2026
I can confirm the same issue on Windows Desktop.
In my case, I deleted several ChatGPT conversations using the browser interface while spending a few hours reorganizing my chats into ChatGPT Projects.
Four deleted conversations remained permanently visible under Recents in the Windows desktop app.
For each affected entry:
I submitted feedback from the desktop app while one of the affected entries was selected.
Feedback ID:
no-active-thread-01a085b4-a2ee-7e43-9ba6-4279a9d1d6ffThis appears to be a synchronization/reconciliation problem where server-deleted ChatGPT conversations remain in the desktop Recents catalog.
oshonsoft commentedon Sep 9, 2026
One additional observation may help narrow this down.
Before the current four stale entries were created, I had reproduced a broader browser → Windows Desktop synchronization problem repeatedly: conversations deleted through the browser would remain visible in the Desktop app.
That general behavior was fixed by a Desktop app update a couple of days later. Newly tested conversations then synchronized correctly.
However, these four conversations, which had already become stale during the affected period, survived the update and remain permanently visible in Recents.
This suggests the current delete/synchronization path may already have been fixed, while previously-created orphaned Recents entries are not being reconciled or garbage-collected.
The four affected conversations were deleted during a several-hours-long operation in which I was also reorganizing many conversations into ChatGPT Projects, so project-membership/history may additionally be relevant.
hausorilla-wq commentedon Sep 12, 2026
I am experiencing exactly the same issue with OpenAI.Codex package 26.825.6671.0 on Windows 11 25H2.
The affected chats are already deleted server-side and no longer appear in the web or mobile apps, but remain as stale entries in Recents in the Windows desktop app. Clicking them results in “Could not load this ChatGPT conversation”.
My in-app diagnostic feedback ID is:
no-active-thread-01a09477-e672-7b21-ad04-2019a8582199Huixvan-Li commentedon Sep 12, 2026
I can reproduce the same issue on Windows.
If I delete a ChatGPT conversation from the web version or another device, the conversation sometimes remains visible in the desktop app.
When I click the stale conversation, the app shows:
“Unable to load this ChatGPT conversation.”
If I then try to delete the conversation from the desktop app, it shows:
“Failed to delete chat.”
The conversation has already been deleted successfully on the server/web side, but the desktop app keeps a stale/ghost entry and cannot remove it.
Steps to reproduce:
Have the same ChatGPT account signed in on the desktop app and Web/another device.
Delete a conversation from ChatGPT Web or another device.
Return to the desktop app.
The deleted conversation may still appear in the conversation list.
Click it → the conversation cannot be loaded.
Try to delete it → “Failed to delete chat.”
Expected behavior:
When a conversation has already been deleted server-side, the desktop app should automatically remove the stale entry from its conversation list. A conversation_deleted / 404 response should also be treated as successful deletion for purposes of cleaning up the local UI.
oshonsoft commentedon Sep 15, 2026
Update after the latest Windows desktop app release:
Previously orphaned/ghost chats can now be deleted manually, which is an improvement.
However, browser → desktop deletion synchronization appears to be broken again.
Reproduction:
So the current state appears to be:
At the moment, manually deleting stale Recents entries seems to be the only way to restore consistency.
neko9210x commentedon Sep 27, 2026
I can reproduce this consistently on the Windows desktop app, and I did some additional inspection of the local SQLite catalog / WAL that may help narrow down the issue.
Reproduction
Reinstalling the Windows app did not resolve the issue.
Local catalog observations
The desktop app stores the conversation catalog in:
%USERPROFILE%\.codex\sqlite\codex-dev.dbThe stale conversation is present in
local_thread_catalog.For one older ghost conversation, I observed:
After a later full reconciliation, the same row changed to:
However, the row was still retained in
local_thread_catalog, and the conversation continued to appear in Recents.This suggests that the reconciliation process can detect that the conversation is missing from the server, but does not immediately prune the local catalog entry.
I also tested a fresh conversation while inspecting the SQLite WAL:
So the local cleanup path seems to work when deletion is initiated from the desktop itself, but not when the deletion originates from another client.
Possible fix direction
It may be worth treating an authoritative server-side "conversation deleted / does not exist" result as an idempotent deletion success and cleaning the local catalog entry immediately.
For example:
For reconciliation cases where the conversation is only absent from a listing,
missing_candidatestill makes sense as a two-step safety mechanism. But if the server explicitly confirms deletion, the entry probably should not remain as a ghost item.This looks less like a rendering issue and more like incomplete cross-client deletion reconciliation between the server state and
local_thread_catalog.