Repository navigation
[macOS][Chat] Server-deleted conversations repopulate in Recents and cannot be removed #40219
Description
What version of the Codex App are you using (From “About Codex” dialog)?
ChatGPT unified desktop app 26.818.41705 (build 6971).
What subscription do you have?
Paid individual ChatGPT plan.
What platform is your computer?
Darwin 25.6.0 arm64 arm
What issue are you seeing?
Product / surface
- Unified ChatGPT desktop app for macOS
- Chat tab / ordinary ChatGPT conversations
- Not Work mode
- Not Codex mode
Dozens of conversations that have already been deleted server-side remain or repopulate as stale entries in the macOS Recents sidebar. The same account is clean on chatgpt.com and mobile: the deleted conversations are absent there.
The stale macOS entries cannot be opened, deleted, or archived:
- Open:
GET /conversation/<redacted-id>returns HTTP404. - Delete:
DELETE /conversation/id/<redacted-id>returns HTTP404and the UI shows Failed to delete chat. - Archive/unarchive:
PATCH /conversation/<redacted-id>returns HTTP404and the UI shows Failed to archive conversation.
Every sampled response is terminal and consistent:
{
"message": "Conversation has been deleted. Start a new chat.",
"code": "conversation_deleted",
"can_retry": false
}Four distinct affected conversation entries were captured in the desktop logs; all four returned conversation_deleted. The sidebar contains dozens of affected entries in total.
Controlled comparison
| Client / surface | Result |
|---|---|
chatgpt.com web, same account |
Deleted conversations are absent |
| Mobile app, same account | Deleted conversations are absent |
| macOS unified desktop app → Chat → Recents | Dozens of deleted titles remain/repopulate |
This does not look like ordinary local cache residue. After Cache, Local Storage, Session Storage, and cookies were removed and the app was fully restarted, the clean client subscribed to the remote conversations and alder-conversations topics. The deleted titles then repopulated in Recents and continued returning the same terminal 404 responses.
The evidence suggests a stale remote Recents/conversation-index entry or a missing tombstone-reconciliation path in the macOS client. This is an inference from the comparison and logs, not a confirmed root cause.
What steps can reproduce the bug?
- Delete ordinary ChatGPT conversations so that they are no longer present on the server-facing web and mobile clients.
- Confirm that the conversations are absent on
chatgpt.comand mobile using the same account. - Open the unified ChatGPT desktop app on macOS and select Chat.
- Observe that deleted conversation titles remain or repopulate under Recents.
- Select an affected entry. It does not open; the request returns
404 conversation_deleted. - Try Delete. The app shows Failed to delete chat, and the DELETE request returns the same terminal 404.
- Try Archive. The app shows Failed to archive conversation, and the PATCH request returns the same terminal 404.
- Fully quit the app, remove its Cache, Local Storage, Session Storage, and cookies, then restart it.
- Observe that the clean app subscribes to the remote conversation topics and the same deleted titles repopulate.
Reproduction rate for the four sampled entries: 4/4. The issue has persisted through sign-out/sign-in, full app restarts, and local web-storage/cache removal.
What is the expected behavior?
Server-deleted conversations should not remain in or repopulate the macOS Recents list.
If a stale Recents entry resolves to the terminal conversation_deleted response, the client/index reconciliation path should remove that entry. Delete or archive requests that encounter this tombstone could be treated as an idempotent cleanup success for the sidebar instead of leaving an undeletable entry and displaying a retryable-looking failure toast.
The Recents index should converge with the authoritative conversation state used by web and mobile.
Additional information
Sanitized diagnostic excerpt
2026-08-23T07:14:11.162Z
method=DELETE
route=/conversation/id/<conversation-A>
status=404
response={"message":"Conversation has been deleted. Start a new chat.","code":"conversation_deleted","can_retry":false}
2026-08-23T07:14:23.279Z
method=GET
route=/conversation/<conversation-A>
status=404
response={"message":"Conversation has been deleted. Start a new chat.","code":"conversation_deleted","can_retry":false,"conversation_id":"<redacted>"}
2026-08-23T07:14:31.367Z
method=GET
route=/conversation/<conversation-B>
status=404
response={"message":"Conversation has been deleted. Start a new chat.","code":"conversation_deleted","can_retry":false,"conversation_id":"<redacted>"}
2026-08-23T07:14:34.224Z
method=GET
route=/conversation/<conversation-C>
status=404
response={"message":"Conversation has been deleted. Start a new chat.","code":"conversation_deleted","can_retry":false,"conversation_id":"<redacted>"}
2026-08-23T07:15:40.460Z and 2026-08-23T07:15:43.057Z
method=PATCH (archive/unarchive attempts)
route=/conversation/<conversation-A>
status=404
response={"message":"Conversation has been deleted. Start a new chat.","code":"conversation_deleted","can_retry":false}
2026-08-23T07:54:37.619Z
method=DELETE
route=/conversation/id/<conversation-D>
status=404
response={"message":"Conversation has been deleted. Start a new chat.","code":"conversation_deleted","can_retry":false}
2026-08-23T07:56:16.479Z
event=chatgpt_pubsub_topic_subscribed
topicId=conversations
catchupCount=0
hadPreviousOffset=false
recovered=false
2026-08-23T07:56:16.479Z
event=chatgpt_pubsub_topic_subscribed
topicId=alder-conversations
catchupCount=0
hadPreviousOffset=false
recovered=false
Troubleshooting already completed
- Verified the same single account is used on macOS, web, and mobile.
- Verified web and mobile do not show the affected conversations.
- Signed out and back in.
- Fully quit and restarted the desktop app.
- Removed desktop Cache, Local Storage, Session Storage, and cookies, then performed a clean restart.
- Retested open, delete, and archive against multiple distinct entries.
- Did not modify or delete local Codex projects or
~/.codexsession data; the affected items are ordinary Chat conversations.
Public-report privacy
Conversation IDs, titles, contents, account identifiers, email addresses, local paths, log filenames, cookies, tokens, and unrelated events are intentionally omitted. Exact affected IDs and a fuller sanitized diagnostic excerpt have been supplied privately to OpenAI Support. A support case is open and its number can be provided privately.
Related but not duplicate
- [macOS][Chat] Existing conversations can get stuck loading in desktop app while the same chat loads normally on web #37580 reports ordinary Chat conversations stuck loading on macOS while they remain valid on web. Here the conversations are already deleted server-side, web/mobile are clean, and the macOS Recents index continues surfacing tombstoned entries.
- Failed to archive conversation + seeing threads that do not have any reason for existing? #28276 reports a generic archive failure involving unexpected Codex/Desktop threads. Here the affected items are ordinary Chat conversations and all operations fail with the specific server response
conversation_deleted.
Useful fixes would include:
- reconciling Recents against conversation-deletion tombstones;
- removing a stale entry when open/delete/archive receives terminal
conversation_deletedwithcan_retry:false; and - exposing an explicit Recents refresh/rebuild path if automatic reconciliation cannot converge.
Activity
github-actions commentedon Aug 23, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
dmurotov commentedon Aug 25, 2026
I have the same problem after the update.
tracedef commentedon Aug 25, 2026
I’m seeing the same issue on macOS. A normal ChatGPT web conversation was deleted successfully and is gone from chatgpt.com and search, but it remains as an orphaned entry in the desktop app’s Recents list.
I’ve already tried sign-out/sign-in, reinstalling the app, and removing Cache, HTTP storage, Local Storage, and Session Storage. The orphan entry remains/reappears.
This appears consistent with the stale remote Recents/index behavior described in this issue.
dmurotov commentedon Aug 25, 2026
Sure — I’m seeing the exact same behavior here. The deleted conversation is gone from the web app and search, but it still remains in the macOS desktop Recents list even after reinstalling and clearing local storage/cache.
So this also looks like a stale remote Recents/index sync issue rather than a local cache problem. I suspect we’ll probably have to wait for a desktop app update to fix it.
I also haven’t tried switching back to the Classic version yet, so I can’t confirm whether the issue appears there as well.
dmurotov commentedon Aug 25, 2026
Quick update: I’ve now tested ChatGPT Classic on the same Mac/account.
The orphaned deleted conversations do not appear there — the Recents list looks normal in Classic. So at least in my case, the issue seems specific to the new macOS desktop app / its Recents implementation, rather than the account’s normal chat history itself.
dongiedong commentedon Aug 25, 2026
same issue, only on unified desktop, not on classic.
ShalevZorany commentedon Aug 26, 2026
Update: confirmed local catalog persistence and repeatable workaround
I have now reproduced and repaired this several times on the same Mac/account. The issue is still present on ChatGPT Desktop
26.820.60940(build7119).Confirmed finding
The affected ChatGPT entries are present in the unified app's local conversation catalog:
The exact IDs that returned
404 conversation_deletedwere found assource_kind='chatgpt'rows in this table. This explains why clearing Electron Cache, Local Storage, Session Storage, HTTP storage, and cookies did not help: those operations do not clear this catalog.The issue has recurred across multiple cleanup/restart cycles, with different batches of locally cataloged ChatGPT rows (including batches of 19, 4, 9, 8, and 24). The local cleanup succeeds, but startup/full or incremental sync can repopulate entries. Rows for conversations that still legitimately exist on the server are expected to return; the bug is that terminally deleted conversations can return or remain as undeletable ghost entries too.
Workaround that cleared the UI
This is an unsupported local workaround, not a product fix. Fully quit the unified ChatGPT app before modifying the database, and back up the database first if the local catalog matters to you.
For one confirmed-deleted conversation, the narrow form is:
In this account the intended Chat Recents list was empty, so the bulk variant used was:
Important behavior observed during verification:
source_kind='chatgpt'rows produced a stable count of zero during the verification window.PRAGMA integrity_checkreturnedokafter each repair.conversation_deleted,can_retry:false.Likely missing product behavior
The desktop synchronization/reconciliation path should propagate conversation-deletion tombstones into
local_thread_catalog. In addition:GET,DELETE, orPATCHreturning404 conversation_deletedwithcan_retry:falseshould invalidate and dismiss the corresponding local row;This finding is consistent with #39897, but the repeated cleanup cycles here also demonstrate the interaction between the local catalog, sync watermarks, restart-time repopulation, and the need for a second reconciliation pass in some cases.
No conversation IDs, titles, account/user IDs, email addresses, tokens, cookies, or personal paths are included in this update.
vcbrewers commentedon Aug 27, 2026
Same issue here.
Environment:
Issue
bytePatrol commentedon Aug 28, 2026
I am proud to say that this workaround worked PERFECTLY on two different MacOS installations that had this bug, thank you.
Magneand commentedon Aug 29, 2026
I can confirm that this remains reproducible on:
At least five conversations that were already absent from the server-facing web history remained as undeletable entries in the macOS Recents catalog. Opening or deleting them failed because the conversations no longer existed remotely.
One additional diagnostic detail: three affected rows in
local_thread_cataloghadmissing_candidate = 1, while two other confirmed server-missing conversations incorrectly hadmissing_candidate = 0. The latter entries were therefore still treated as valid by the local catalog.After backing up the database and removing only the exact confirmed-deleted rows, the ghost entries disappeared. A subsequent conversation sync did not recreate them during the verification period, and
PRAGMA integrity_checkreturnedok.No conversation titles, IDs, contents, account identifiers, or personal paths are included here.
sjh8153 commentedon Aug 31, 2026
I can reproduce this issue on Windows as well.
Environment:
26.825.6671Observed behavior:
chatgpt.comusing the same account.Request failed with error 404.Failed to delete chat.This confirms that the issue is not limited to macOS. The web conversation state is correct, while the Windows desktop Recents list retains stale references to server-deleted conversations.
A feedback session ID is available privately if the OpenAI team needs it.
wangzhefeng commentedon Aug 31, 2026
Additional independent reproduction from macOS:
26.825.51511404 conversation_deletedwithcan_retry: falsewhen opened.conversation_deleted.state_5.sqliteintegrity check isok, and these are not local Codex threads.This is consistent with the report's stale remote Recents index / missing tombstone-reconciliation hypothesis. It would help if the client removed a Recents row after any terminal
conversation_deletedresponse, treating delete/archive against an already-deleted conversation as an idempotent sidebar cleanup success.dilashchuk commentedon Sep 2, 2026
Independent reproduction on a newer build:
26.831.21537(build7579)Could not load this ChatGPT conversation; deleting showedFailed to delete chat.Read-only inspection on one Mac found both stale entries in:
~/.codex/sqlite/codex-dev.dbtable:
local_thread_catalogBoth rows had:
source_kind = 'chatgpt'missing_candidate = 0After backing up the database and deleting only the two exact confirmed-deleted rows, then incrementing
local_thread_catalog_metadata.catalog_revision, the local catalog no longer contained the stale entries.PRAGMA quick_checkreturnedok, and unrelated catalog rows were unchanged.This confirms the issue still reproduces on build 7579 and that terminally deleted ChatGPT conversations can remain marked as valid (
missing_candidate = 0) in the local catalog. The product fix should reconcile remote deletion tombstones intolocal_thread_catalog, and treat an already-deleted remote object as an idempotent sidebar cleanup success.Conversation titles/IDs and account identifiers are intentionally omitted.
julianshi0122-dot commentedon Sep 2, 2026
Windows reproduction confirming this is cross-platform.
Environment
OpenAI.Codex 26.831.2377.0(Microsoft Store package)Microsoft Windows NT 10.0.26200.0, x64Observed behavior
Conversations deleted earlier from the mobile client intermittently reappeared in the Windows desktop Recents list. Attempting to delete them in the desktop UI displayed a deletion failure. The entries sometimes disappeared and later returned.
Six affected entries were confirmed. The current account-backed conversation listing no longer returned those conversations, but the Windows desktop catalog still contained rows for them in:
For the stale rows,
missing_candidatewas still0, so they were treated as normal catalog entries despite being absent from the current account-backed list. One valid conversation returned by the account listing was also present in the same table, providing a useful control.Workaround and result
After making a SQLite online backup, deleting only the six exact stale
source_kind = chatgptcatalog rows removed the ghost entries. The valid control conversation remained present. A subsequent desktop list and database query both showed the six stale IDs absent.Conversation titles, IDs, account identifiers, and database files are intentionally omitted from this public comment. I can provide sanitized IDs privately if an OpenAI maintainer requests them.
Expected behavior
The Windows desktop Recents catalog should reconcile against server deletion tombstones. A terminal response indicating that a conversation is already deleted should be treated as idempotent cleanup success: remove the local catalog entry instead of showing a deletion failure and allowing it to reappear.
dmurotov commentedon Sep 3, 2026
Confirmed on macOS as well.
Environment:
I had four conversations that had already been deleted from ChatGPT, but they remained visible in the Desktop Recents list.
I checked:
~/.codex/sqlite/codex-dev.db
local_thread_catalog
All four stale entries were still present with:
source_kind = chatgpt
missing_candidate = 0
I first created a SQLite backup, then deleted only those four exact stale rows from
local_thread_catalogusing theirthread_idvalues.Result:
So I can confirm that the workaround described above also works on macOS.
This appears to further confirm that the issue is in reconciliation between the account-backed conversation state and the local Desktop
local_thread_catalog, rather than in the conversation deletion itself.Thanks for documenting the workaround.
vcbrewers commentedon Sep 3, 2026
This has been resolved for me as of the latest update on macOS (Version 26.901.22334) 👍
bytePatrol commentedon Sep 3, 2026
I was able to work with OpenAI desktop sync team engineers (Case Number: 13957766) to get this issue properly resolved with the latest ChatGPT update (Version 26.901.22334)
daveyjones commentedon Sep 3, 2026
I just installed 26.901.22334 and I still have a full list of recent chats that were deleted via the browser days ago.
EDIT: Never mind. It took a few minutes, but it did update.
dongiedong commentedon Sep 4, 2026
I can confirm that the bug is still there (26.901.22334), started a chat on desktop, deleted it on web app, quit the desktop app, restart desktop app, phantom undeletable chat still there. Even after a few minutes (how long did you wait @daveyjones ?)
Workaround still works too..
Paayamok commentedon Sep 4, 2026
Additional reproduction on macOS (2026-09-04):
So the web-side conversation state is already clean, while the macOS client continues to surface undeletable stale conversation entries. This matches the behavior described in this issue and provides another independent affected-user reproduction.
AndysTMC commentedon Sep 4, 2026
I'm having the same problem!
OS: Ubuntu 26.04.1
Desktop App Version: 26.901.31953
Feedback ID: no-active-thread-01a06c75-d100-7270-90cd-6f041da2fa3b
tanmaynk commentedon Sep 6, 2026
issue occurs on both macOS and Windows
I have now confirmed that this issue is not specific to my Mac. The same deleted conversations continue to appear in the ChatGPT desktop application's Recents sidebar on both my Mac and Windows PC.
Key observations:
The affected conversations were deleted several days ago.
They do not appear on ChatGPT.com.
They do not appear when searching for them.
They nevertheless remain visible in Recents in the ChatGPT desktop app.
The issue occurs on two separate computers running different operating systems: macOS and Windows.
On macOS I have already:
Signed out and back in.
Completely uninstalled and reinstalled ChatGPT.
Reset the application's local data.
Removed/recreated ~/Library/Application Support/Codex.
Tested with a completely fresh local Codex/ChatGPT application-data profile.
Even after creating a fresh local application-data profile, the exact same deleted conversations repopulated in Recents.
The same ghost entries subsequently appeared on my Windows installation.
This strongly suggests that the stale Recents records are being synchronized or supplied by an account-side/Desktop Unified Recents service, rather than being caused by a local cache on either computer.