Skip to content

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

Open

Description

@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.

Activity

  1. added
    bugSomething isn't working
    appIssues related to the Codex desktop app
    sessionIssues involving session (thread) management, resuming, forking, naming, archiving
    on Jun 15, 2026
  2. github-actions commented on Jun 15, 2026

    @github-actions
    Contributor
  3. boombx403-byte commented on Aug 18, 2026

    @boombx403-byte

    Hi @zzftkid2, I'm testing a local-first, read-only diagnostic tool (Codex Rescue Alpha5) against local session persistence and rollout anomalies. It evaluates schema compatibility, tool correlation, and state consistency without modifying the original rollout or SQLite databases.

    If the affected session is still present locally, you can run:

    pip install codex-rescue==0.1.0a5
    codex-rescue doctor --latest

    No raw data is needed; please redact any private repository paths before sharing results.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions