ChatGPT Windows Desktop – Ghost chat cannot be deleted

I have a conversation that appears only in the ChatGPT Windows desktop application.
It does not appear on chatgpt .com in the browser.

When I try to delete this conversation in the desktop app, I receive the error:

“Failed to delete chat”

I already tried:

  • signing out and signing back in,
  • Repair in Windows,
  • Reset in Windows,
  • uninstalling ChatGPT,
  • reinstalling the latest ChatGPT Windows app.

The problem still returns after I sign in.

Some conversations in the desktop sidebar also show a cloud icon, while others do not.

It looks like there may be a stale or broken conversation/sync record associated with my account or the Windows desktop app.

Could you please check this issue and help remove or repair the affected conversation record?

Platform: Windows Desktop
Browser version: The affected chat is not visible there
ChatGPT plan: Plus

I can provide screenshots if needed.

Welcome to the community, @beratcnklc. This definitely sounds like something worth a closer look.

Could you please email support@openai.com to create a support ticket and include a sanitized HAR file so the team can inspect the behavior further? A screen recording showing the ghost chat and what happens when you try to delete it would also be very helpful.

Once you have the ticket, feel free to drop the case ID here so we can help monitor the issue.

-Mark G.

I’m seeing the same issue on Windows 11.

In my case, a chat was still visible in the ChatGPT desktop app while the app was open, but I deleted that chat from another client, for example the iPhone app or the web version. The chat disappears correctly from the other clients, but it remains in the Windows desktop app as a “ghost” entry.

After that, the ghost chat can no longer be deleted from the Windows app. It is essentially stuck in the sidebar/Recents list even though the actual conversation has already been deleted.

Restarting the app does not resolve the issue. From what I can tell, this looks like a synchronization problem between the server-side conversation state and the desktop app’s Recents/sidebar state.

I have also already been in contact with OpenAI Support about this. The issue was escalated internally to the relevant team, but so far I have not received any official update or confirmation that a fix is available.

It is becoming quite frustrating, especially because these ghost chats are gradually accumulating and there is currently no reliable way to remove them from the Windows desktop app.

So I can confirm that this is definitely not an isolated case. I’m experiencing the same behavior with the current ChatGPT desktop app on Windows 11.

Thanks, Mark.

Just one question about the HAR file. The issue only happens in the ChatGPT Windows app, and the affected conversation doesn’t show up in the web version, so I don’t think I can reproduce it in a browser.

From what I understand, the Windows app also doesn’t have the usual developer tools for capturing a HAR file. If I’m wrong about that, please correct me and let me know how I can capture one from the desktop app.

I can provide a screen recording showing the ghost conversation, the cloud icons, and what happens when I try to open or delete it.

If a HAR file isn’t possible in this case, is there another log or diagnostic file from the Windows app that would be useful?

Thanks again.

Hi @beratcnklc, thanks for confirming, and sorry I misread that line above.

Could you please share a screen recording of the behavior, along with your OS version, app version, and the exact UTC timestamp of the deletion attempt?

@Palmbeach, since it’s been a while, could you also send the same details if you’re still seeing this?

Thanks, both!

-Mark G.

Thanks for following up and for looking into this.

I have the screen recording ready, but the forum currently doesn’t allow me to upload videos or include external links in my post. Because of that, I’m attaching screenshots here instead.

Here are the details you requested:

OS: Windows 11 Pro, version 25H2 (OS Build 26200.9168)
ChatGPT version: 26.831.2377.0
Deletion attempt: September 2, 2026 at 15:44 UTC

If there’s an alternative way to share the screen recording, please let me know and I’ll be happy to send it there.

One additional note: this is a personal device, and there are no organization-managed policies or restrictions applied to the operating system.

Hi @beratcnklc,

Kindly send the screen recording to support@openai.com so our team can take a closer look.

Thank you!

-Mark G.

To fix this problem do the following:

Note all the chats that are failing to delete including their project folders.

Explain the problem to ChatGPT. Ask it to first create a backup of your local chats. Then have it check that these chats are deleted on the cloud. If they are then delete them from the local cache and ask it to delete the web browser cache also.

Once it does that close out of the app including the tray and come back in. They should be deleted, if not ask ChatGPT to check more areas where they might be stored.

When this task works keep it and ask ChatGPT to run it on a scheduled Codex task once a week to clean them up making sure it creates backups first.

The issue appears to be some kind of sync bug in the desktop app, it also causes a bug that stops you creating work chats attached to projects.

Quick update: this issue is still affecting me on Windows 11.

My OpenAI Support case was previously escalated internally, but I have still not received a substantive status update.

Meanwhile, the public GitHub bug cluster has continued to grow, with the same behavior reproduced across multiple newer desktop builds. The main Windows tracking issue is:

There is now also fairly detailed public diagnostic evidence pointing to the handling of terminal conversation_deleted responses and the desktop Recents/thread-catalog reconciliation path.

@OpenAI_Support — could you please confirm whether this issue is still being actively tracked by the relevant engineering team, and whether my existing support case can still be correlated with that investigation?

I would be happy to provide a fresh reproduction with the current Windows app version, exact UTC timestamp, screen recording, and Feedback ID if needed.

I can reproduce this issue as well.

Reproduction:

  1. Created a test conversation and confirmed it was visible both in the web client and in the Windows app.
  2. Deleted the conversation in the web client.
  3. It disappeared immediately from the web client but remained visible in the Windows app as a “ghost” conversation.
  4. Trying to archive it in the Windows app returns “Conversation could not be archived.”
  5. Trying to delete it returns “Chat could not be deleted.”

I reproduced this on September 8, 2026. Screenshots show the conversation present in both clients at 23:05:14 CEST (21:05:14 UTC) and, after deletion, absent from the web client but still present in the Windows app at 23:05:46 CEST (21:05:46 UTC).

Environment:

  • Windows OS build: 26200
  • App package: OpenAI.Codex 26.901.6511.0
  • ChatGPT.exe version: 152.0.7977.83

Screenshots of the reproduction and both error messages are attached.

This looks like the same synchronization issue reported here, so I’m adding my reproduction rather than opening a duplicate topic.

I’m also experiencing the same issue.

Environment: Windows 10 — ChatGPT Windows Desktop package OpenAI.Codex_26.903.9818.0_x64__2p2nqsd0c76g0

Diagnostic method: Investigated using ChatGPT Work (GPT-6 Astra Light) in strictly read-only mode, together with GPT-5.6 Sol for analysis and test planning. Work inspected the local SQLite database/WAL, desktop logs, and installed desktop implementation without modifying application state.

ChatGPT Windows Desktop — Deleted conversations persist as ghost catalog entries

Summary

Conversations deleted successfully on ChatGPT web can remain indefinitely visible in the Windows desktop app as undeletable “ghost” conversations.

I currently have 7 confirmed ghost entries: some within an existing Project and others in Recents. The Project itself still exists; only its conversations were deleted.

User-visible behavior

A conversation deleted on ChatGPT web remains visible in the Windows desktop sidebar.

Opening a tested ghost produces:

Could not load this ChatGPT conversation.

Logs show the server returning HTTP 404 including:

  • conversation_deleted

  • can_retry=false

Attempting to delete that already-deleted conversation through the desktop app also returns HTTP 404 and leaves the ghost entry intact.

A complete uninstall/reinstall and removal of local application data did not resolve the issue.

Local catalog evidence

The desktop client maintains:

%USERPROFILE%\.codex\sqlite\codex-dev.db

Table:

local_thread_catalog

All 7 known ghosts remain active with:

source_kind = chatgpt
missing_candidate = 0

Strong evidence from incremental synchronization

Historical committed SQLite WAL states preserved catalog scan checkpoints.

Three recovered incremental scan sequences contained 72 response-derived conversation IDs and zero of the 7 known ghost IDs.

Most significantly, the latest recovered set of 72 IDs equals exactly:

79 locally active ChatGPT catalog rows − 7 known ghosts = 72 response-derived IDs

The installed implementation constructs these checkpoint IDs from items returned by:

/conversations?offset=0&limit=100&order=updated&is_archived=false&hide_snorlax=false

rather than from existing local catalog rows.

For one recovered scan, WAL history shows:

  1. Incremental checkpoint initialized.

  2. 72 response-derived IDs saved; none are ghost IDs.

  3. Scan reaches its reconciliation phase.

  4. Scan completes successfully.

  5. Checkpoint is cleared.

  6. Catalog watermark advances.

  7. All 7 absent local rows remain active with missing_candidate = 0.

This strongly supports the conclusion that incremental synchronization can successfully receive a conversation set excluding the deleted conversations while failing to retire their stale local rows.

Relevant implementation behavior

Inspection of the installed desktop implementation indicates:

Incremental scans

Incremental completion does not perform missing-entry reconciliation.

Therefore, a locally active conversation absent from an incremental server result can remain active.

Full scans

Missing-entry processing occurs during full scans.

An eligible active row absent from a completed full scan can first become:

missing_candidate = 1

A subsequent full scan can remove a previously missing row if it remains absent and sequence conditions permit.

Full reconciliation scheduling

The inspected eligibility logic effectively requires a full reconciliation when:

  • initial population is incomplete, OR

  • no previous full-reconciliation timestamp exists.

An existing full-reconciliation timestamp does not appear to expire based on age.

Ordinary startup/refresh/notification-driven synchronization appears to use incremental mode once initial population has completed.

A retry mechanism exists for an already-required full scan, and migration code can clear the full-reconciliation timestamp, but no periodic age-based full reconciliation was found in the inspected catalog code.

During observation, catalog synchronization continued and its observation sequence advanced, while the previous full-reconciliation timestamp remained unchanged and all 7 ghosts stayed missing_candidate = 0.

Deleted-conversation error handling

The inspected conversation-load failure path propagates/logs HTTP 404 conversation_deleted but does not appear to mark or remove the corresponding local catalog row.

The desktop delete sequence also appears to:

  1. request server-side deletion;

  2. then remove/notify the local catalog after success.

If the server responds that the conversation is already deleted, the 404 occurs before local catalog cleanup.

Thus an already-deleted ghost cannot repair itself through the normal desktop delete operation.

Likely failure mechanism

The evidence supports this sequence:

  1. Conversation exists and enters the desktop catalog.

  2. Conversation is deleted through ChatGPT web or another client.

  3. Later incremental /conversations synchronization no longer returns its ID.

  4. Incremental reconciliation does not process locally active rows absent from the result.

  5. The stale row remains missing_candidate = 0.

  6. No periodic full reconciliation occurs to discover the missing row.

  7. The sidebar continues displaying the ghost.

  8. Opening it returns HTTP 404 conversation_deleted.

  9. That error path does not retire the local row.

  10. Desktop deletion also receives 404 before local cleanup.

Expected behavior

A conversation authoritatively deleted elsewhere should eventually disappear from the Windows desktop catalog/sidebar.

Additionally, HTTP 404 conversation_deleted could reasonably be treated as authoritative confirmation that the local catalog entry should be retired. Deleting an already-deleted conversation could effectively be handled as an idempotent success for local cleanup purposes.

Diagnostic limitations

The recovered checkpoint data contains parsed conversation IDs/update timestamps rather than raw HTTP response bodies.

Therefore this does not prove every possible server response condition. However, three recovered incremental scans contained zero known ghost IDs, and the latest recovered set contained exactly all locally active non-ghost IDs while the 7 additional ghost rows remained active.

All ghost entries have been intentionally preserved in their current state in case further diagnostic testing is useful.

Please fix this. It’s embarrassing how long this has been going on. Deleting the .codex folder manually should not be required as part of normal usage.