Codex Desktop conversations become empty and resume fails with stale Windows path

Open 💬 3 comments Opened May 23, 2026 by Solitmag

Summary

On Windows, many Codex Desktop conversations gradually become unavailable or show as empty / "No conversation" in the UI, even though the local SQLite database and rollout JSONL session files still exist.

Reinstalling Codex Desktop did not fix the issue.

A related resume failure shows that the app treats two equivalent Windows paths as different paths:

cannot resume running thread 019e49af-8706-7773-b282-4be83c769e19 with stale path:
requested `\\?\C:\Users\<USER>\.codex\sessions\2026\05\21\rollout-2026-05-21T16-38-23-019e49af-8706-7773-b282-4be83c769e19.jsonl`,
active `C:\Users\<USER>\.codex\sessions\2026\05\21\rollout-2026-05-21T16-38-23-019e49af-8706-7773-b282-4be83c769e19.jsonl`

These two paths refer to the same file on Windows, but Codex appears to compare them as raw strings and rejects the resume as stale.

Symptoms

  • Many old project conversations appear as empty / "No conversation" in Codex Desktop.
  • Some project folders previously had visible conversations, but over time the conversations disappeared from the UI.
  • Some conversations from around one month ago are no longer accessible from the UI.
  • Reinstalling Codex Desktop did not restore the missing/empty conversations.
  • The underlying rollout files still exist on disk.
  • state_5.sqlite still contains thread records, but session_index.jsonl appears incomplete/out of sync.

Environment

  • OS: Windows 11 Pro
  • OS version: 10.0.26200
  • Build: 26200
  • Architecture: x64
  • Filesystem: NTFS
  • Codex App package: OpenAI.Codex_26.519.3891.0_x64__2p2nqsd0c76g0
  • Codex executable version shown by Windows: 0.133.0.0
  • CPU: AMD Ryzen 9 8945HX
  • RAM: 32 GB
  • GPU: NVIDIA GeForce RTX 5070 Ti Laptop GPU + AMD Radeon 610M
  • Reinstall attempted: yes, issue persisted after reinstall

Local diagnostic findings

The following checks were performed without modifying the Codex data directory.

Thread database

state_5.sqlite still contains thread records:

threads_total: 277
active_threads: 269
archived_threads: 8

Most thread cwd values use the extended Windows path prefix:

cwd starts with \\?\ : 273
rollout_path starts with \\?\ : 3

Path prefix distribution:

cwd_prefix  rollout_prefix  count
\\?\        C:\             270
D:\         C:\             3
\\?\        \\?\            3
C:\         C:\             1

Rollout files

Rollout files still exist:

sessions rollout files: 270
archived rollout files: 10
session_index.jsonl lines: 175
missing rollout files referenced by state_5.sqlite: 0

This suggests the data files are present, but the UI/index layer is not showing or loading many of them correctly.

Example affected thread

For the thread that failed to resume:

thread id: 019e49af-8706-7773-b282-4be83c769e19

cwd:
\\?\C:\Users\<USER>\Documents\.Projects\<PROJECT>

rollout_path:
C:\Users\<USER>\.codex\sessions\2026\05\21\rollout-2026-05-21T16-38-23-019e49af-8706-7773-b282-4be83c769e19.jsonl

A later thread recording the failure has:

cwd:
\\?\C:\Users\<USER>\Documents\Codex\2026-05-21\cannot-resume-running-thread-019e49af-8706

rollout_path:
\\?\C:\Users\<USER>\.codex\sessions\2026\05\21\rollout-2026-05-21T17-57-40-019e49f8-2759-7fa0-909b-4d87a3339733.jsonl

So the local database contains a mixture of normal C:\... paths and extended \\?\C:\... paths.

Expected behavior

  • Codex Desktop should normalize equivalent Windows paths before comparing them.
  • C:\Users\<USER>\... and \\?\C:\Users\<USER>\... should be treated as the same path.
  • Conversations should not show as empty if the corresponding rollout JSONL file exists and is referenced by state_5.sqlite.
  • Reinstalling the app should not leave the history UI in a broken state if the local session data remains intact.
  • If session_index.jsonl is stale or incomplete, Codex should be able to rebuild it from state_5.sqlite and existing rollout files, or expose a repair command.

Actual behavior

  • Resume can fail with stale path even when requested and active paths point to the same file.
  • Many conversations appear empty or disappear from UI.
  • state_5.sqlite and rollout files still exist, but session_index.jsonl appears out of sync.
  • Reinstalling Codex Desktop does not resolve the issue.

Privacy note about logs

I am not attaching raw logs_2.sqlite publicly because it appears to contain sensitive data.

A quick local scan found occurrences of sensitive-looking strings such as:

NVIDIA_API_KEYS
api_key
API_KEY
Bearer
user.email
auth.json
phone-number-like strings
private URLs

However, diagnostic terms are also present in the logs:

cannot resume running thread
stale path
session_index
state_5.sqlite
No conversation / empty conversation UI text

I can provide a redacted diagnostic excerpt if maintainers specify what fields are safe and useful.

Related issue

This may be related to the Windows/path identity class of issues, especially:

That issue describes thread/resume rejecting equivalent rollout paths as stale when the same file is represented by different path spellings.

Requested help

Could Codex Desktop:

  1. Normalize Windows paths before stale-session comparison?
  2. Add a safe repair/reindex command for session_index.jsonl based on state_5.sqlite and existing rollout files?
  3. Recover/show conversations when rollout files exist but the UI displays them as empty?
  4. Document which local files should be backed up before reinstalling?
  5. Provide guidance for safely sharing logs without leaking credentials or personal data?

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗