Archived chat delete shows success toast but does not remove archived thread

Open 💬 1 comment Opened Jun 15, 2026 by zzftkid2

Component

Codex desktop app / local archived thread deletion

Version

  • Codex CLI/App runtime: 0.140.0-alpha.2
  • Codex Desktop client version observed in logs: 26.609.41114
  • Platform: macOS 15.7.7, Apple Silicon

Summary

Deleting an archived chat from Settings > Archived chats shows a success toast ("Deleted archived chat" / localized: "已删除归档聊天"), but the archived chat is not actually deleted. It remains visible in Archived chats, can still be unarchived, and the local state remains unchanged.

Steps to reproduce

  1. Create a new local/projectless chat in the Codex desktop app.
  2. Archive the chat.
  3. Open Settings > Archived chats.
  4. Delete the archived chat from the archived chats list.
  5. Observe the success toast.
  6. Quit and reopen Codex.
  7. Return to Settings > Archived chats.

Expected behavior

The archived chat should be permanently removed from the archived chats list, the archived rollout file should be removed, and the SQLite thread row / session index should no longer include the deleted thread.

Actual behavior

A success toast is shown, but the archived chat remains. After restarting Codex, it is still listed under Archived chats. Choosing Unarchive restores it to the main thread list, which confirms the deletion did not take effect.

Local evidence

After clicking delete, the archived thread remains in local state:

  • $CODEX_HOME/archived_sessions/rollout-...<thread-id>.jsonl still exists.
  • $CODEX_HOME/sqlite/state_5.sqlite still has the row with archived = 1.
  • $CODEX_HOME/session_index.jsonl still contains the thread entry.
  • codex doctor --json still reports matching archived rollout files and archived rows.

This reproduced with multiple separate test chats. Manual deletion of the rollout file, SQLite row, and session_index entry removes the archived chat successfully, so the issue appears to be in the app delete path rather than corrupted test data.

Additional clues

Logs contained repeated warnings like:

state db codex_home mismatch: expected $CODEX_HOME/sqlite, got $CODEX_HOME

There are also two state DB locations present locally:

  • $CODEX_HOME/state_5.sqlite
  • $CODEX_HOME/sqlite/state_5.sqlite

The app appears to read active archived state from $CODEX_HOME/sqlite/state_5.sqlite.

Also, typing /feedback in the app composer was sent as a normal message and did not open the feedback dialog in this build, so I am filing this issue here instead.

Notes

The UI says deletion succeeded, so the issue is easy to miss unless the user revisits archived chats or checks local state.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗