Codex Desktop loses command/tool details after thread restore/archive, and archive restore path becomes inconsistent

Open 💬 3 comments Opened Jun 3, 2026 by llbk-kevin
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What version of the Codex App are you using (From “About Codex” dialog)?

OpenAI.Codex 26.527.7698.0

What subscription do you have?

ChatGPT Plus

What platform is your computer?

Microsoft Windows NT 10.0.19044.0 x64

What issue are you seeing?

Codex Desktop loses visible command/tool details after a thread is restored, and archiving/unarchiving can produce an inconsistent rollout path error.

During the original run, the thread UI shows intermediate technical details such as command/tool rows, for example “已运行 1 条命令”, command output, file changes, and progress messages.

After the same thread is restored, either by restarting Codex Desktop or by archiving/reopening the thread, the UI only shows user/assistant text. The command/tool rows and intermediate technical details disappear.

The underlying transcript data is not lost. I verified that the raw rollout JSONL file under %USERPROFILE%\.codex\sessions\...\rollout-<thread-id>.jsonl still contains response_item entries with function_call and function_call_output. However, the restored Codex Desktop UI does not render those items.

What steps can reproduce the bug?

Feedback ID: 019e8ae1-87ee-7aa0-ba49-8c8339bdd559

  1. Start a Codex Desktop local thread in coding mode.
  2. Ask Codex to run a command, for example listing project files.
  3. During the original run, observe that the UI shows command/tool details such as “已运行 1 条命令”, command output, and intermediate progress messages.
  4. Restart Codex Desktop, or archive and reopen/unarchive the same thread.
  5. Observe that the restored thread only shows user/assistant text. The command/tool rows and intermediate details are no longer visible.

Archive/unarchive related repro:

  1. Archive the same thread.
  2. Try to restore/open it again.
  3. Codex shows: session <id> is archived. Run codex unarchive <id> to unarchive it first.
  4. Then restoring from archived chats shows: failed to resolve rollout path 'C:\Users\<user>\.codex\archived_sessions\rollout-....jsonl': The system cannot find the file. (os error 2)

What is the expected behavior?

Restored threads should render the same tool calls, command outputs, file changes, and intermediate technical details that were visible during the original run.

Archiving and unarchiving should keep local thread state consistent. If a thread is active, Codex should restore it from the existing rollout path under %USERPROFILE%\.codex\sessions. If a thread is archived, the matching rollout file should exist under %USERPROFILE%\.codex\archived_sessions or the app should not try to restore from that path.

Additional information

Local state after the archive/restore error looked inconsistent:

  • state_5.sqlite showed the thread as archived=0
  • rollout_path still pointed to %USERPROFILE%\.codex\sessions\...\rollout-....jsonl
  • that rollout file existed
  • %USERPROFILE%\.codex\archived_sessions did not contain the matching rollout file
  • unarchive returned no archived rollout found

I also tried reinstalling multiple recent Codex Desktop versions, but the issue still reproduced. My machine does not have Microsoft Store available, so Codex Desktop was installed from an MSIX package using PowerShell, for example:

Add-AppxPackage -Path .\*.Msix -Verbose

This suggests two related restore-path issues:

  1. The restored UI does not rebuild/render function_call and function_call_output items from the raw rollout transcript.
  2. Archive/unarchive can leave the UI trying to restore from archived_sessions even though SQLite says the thread is active and the real rollout file is still in sessions.

The practical impact is that any unload/restore path, including restart or archive/reopen, causes visible command/tool context to disappear from the UI. The raw transcript is still present, but Codex Desktop no longer displays the technical details that were visible during the original run.

View original on GitHub ↗

3 Comments

github-actions[bot] contributor · 2 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #25486
  • #25713
  • #25769

Powered by Codex Action

0xdevalias · 2 months ago

Possibly relevant: rust-v0.140.0 includes #27276, which changes archive rollout lookup to try the exact rollout filename before falling back to broader file search when the state DB does not have a usable rollout path.

  • #27276

If this stale archived-path case reaches that fallback, current builds may recover faster or more reliably. It likely does not by itself fix Desktop UI/cache state continuing to send an old archived_sessions path, so a retest on 0.140+ would help separate stale-metadata behavior from rollout lookup cost.

shleder · 14 days ago

This is a useful state/reconstruction mismatch: the rollout still contains function_call and function_call_output, but restored Desktop views omit them, while archive state points at a nonexistent archived file even though the active rollout exists.

I’m testing Codex Rescue against this kind of durable-history divergence. It will not edit SQLite, move files, or repair the Desktop renderer. It scans the source read-only and can preserve tool-state evidence in a bounded handoff; verification remains fail-closed.

If that thread still exists, could you try:

pipx install codex-rescue==0.1.0a3
codex-rescue sessions
codex-rescue doctor --latest

Please share sanitized output only—no raw rollout, databases, command output, prompts, repository files, local paths, or secrets.

https://github.com/shleder/codex-rescue