Codex Desktop on Windows cannot resume local chats until app restart
What happened?
In Codex Desktop on Windows, existing local chats/threads cannot reliably be resumed again within the same Desktop app session. Selecting a previous chat attempts to resume it, but the resumed session does not become usable until Codex Desktop is fully restarted. After a full app restart, the same chats can be opened again.
This does not look like missing local history: the state DB still contains the threads, and the rollout JSONL files exist on disk.
Expected behavior
Selecting an existing local chat in Codex Desktop should resume that thread in the current Desktop session without requiring a full app restart.
Actual behavior
Resume only recovers after restarting Codex Desktop. Logs show repeated thread/resume requests followed by PowerShell shell snapshot warnings, and occasional shutdown-time thread not found errors.
Relevant sanitized log lines:
app_server.request{otel.name="thread/resume" rpc.method="thread/resume" app_server.client_name="Codex Desktop" app_server.client_version="26.422.62136"}:thread_spawn:session_init:shell_snapshot{thread_id=<thread-id>}: Failed to create shell snapshot for powershell: Shell snapshot not supported yet for PowerShell
session_loop{thread_id=<thread-id>}:submission_dispatch{otel.name="op.dispatch.shutdown" codex.op="shutdown"}: failed to record rollout items: thread <thread-id> not found
Local state checked
~/.codex/state_5.sqlitecontains the affected threads.- Recent affected threads have
rollout_exists = true. - Example recent threads are normal local Desktop threads with
source = vscode,archived = 0, andcwdunder a Windows workspace path. ~/.codex/session_index.jsonlis being updated.- Desktop global state has the active/saved workspace root set to the same workspace.
Environment
- OS: Windows
- Codex Desktop client version from logs:
26.422.62136 - Workspace path shape: Windows drive path, e.g.
D:\... - State/log storage:
C:\Users\<user>\.codex - Desktop setting observed in global state:
integratedTerminalShell = "gitBash" - Resume path still logs shell snapshot attempts for
powershell
Notes
I searched for existing issues around:
"Shell snapshot not supported yet for PowerShell""thread/resume" "PowerShell""failed to record rollout items" "thread" "not found"- Windows/Desktop resume failures
I found related Windows/Desktop/session issues, but not an exact match for this plain chat resume failure where the rollout files exist and restart is the workaround.