You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
🩹🩹 Codex Windows app: project chats disappear after update and after first response #27453
Adding a fresh Windows repro after updating to a newer Codex Desktop build. This is sanitized for public GitHub; exact thread id and exact local path are omitted here, but I have them available for private /feedback.
Environment:
Windows Codex Desktop AppX: OpenAI.Codex_26.623.5175.0_x64__2p2nqsd0c76g0
Previous AppX observed before update/reopen: OpenAI.Codex_26.623.3763.0_x64__2p2nqsd0c76g0
Browser/Chrome plugin bundle after update: 26.623.41415
This looks related to #25463, #27243, and the closed duplicate #22777. My current hypothesis is that two issues overlap on Windows:
Project/sidebar grouping is vulnerable to \\?\ cwd normalization mismatch.
thread/list / search can drop valid sessions when preview and first_user_message are blank or preview reconstruction fails. Direct read_thread still works, so the thread should probably appear as a title-only row instead of disappearing.
Expected behavior: valid, unarchived local user threads with existing rollout files should remain visible in sidebar/list/search even if preview derivation fails.
Is there a supported local repair/reindex command for this state, and is thread/list being changed to tolerate blank preview / preview reconstruction failures?
Follow-up after more local diagnosis on the same Windows machine. This is still sanitized; exact local thread ids and exact local username are omitted publicly.
I found two separate failure modes that overlap:
1. Blank previews make threads invisible to the normal visible-thread path
The local threads table has partial indexes that only include rows with non-empty preview text:
CREATEINDEXidx_threads_visible_created_at_msON threads(archived, created_at_ms DESC)
WHERE preview <>'';
CREATEINDEXidx_threads_visible_recency_at_msON threads(archived, recency_at_ms DESC, id DESC)
WHERE preview <>'';
CREATEINDEXidx_threads_visible_updated_at_msON threads(archived, updated_at_ms DESC)
WHERE preview <>'';
The newest missing chats had:
thread_source='user'
source='vscode'
archived=0
preview=''
first_user_message=''
rollout JSONL exists
read_thread by id succeeds
So those rows were valid and readable, but excluded from the visible-index condition. They were mostly attachment-only / pasted-text-request chats where the title was generated later.
A local test repair that set preview = title for active user rows with blank previews changed 23 rows. After that, the DB had:
active_user_blank_preview = 0
That appears to address one class of missing thread metadata, though the running app process still had stale list/search state until refresh/restart.
2. Project hierarchy still breaks because live app state rewrites cwd back to \\?\...
The same machine also has the Windows path-normalization issue from #27243. The saved project root is normal:
C:\Users\<user>\Code\Unreal\<project>
But affected threads.cwd rows are rewritten to:
\\?\C:\Users\<user>\Code\Unreal\<project>
I stripped the \\?\ prefix from threads.cwd as a local SQLite test. It initially made the DB match the saved project root, but while Codex was still running the app/sync/reconciliation path rewrote many rows back to the prefixed form almost immediately.
Pinning one hidden thread made it visible/recoverable. After unpinning it, it disappeared again. That suggests pinned threads are shown through a different surface that bypasses or supplements the broken project/list discovery path. Once unpinned, the thread falls back into the broken combination of cwd mismatch / stale discovery.
Why this seems actionable
I think there are two fixes needed:
thread/list / search / sidebar should not drop valid active rows when preview is blank. It should render a title-only fallback or derive preview from the first readable user item, even for attachment-only prompts.
Windows cwd normalization needs to happen consistently before DB writes, project-sidebar grouping, cloud/local reconciliation, and search/list filtering. A local DB repair is not durable while Codex is running because the prefixed cwd gets reintroduced.
A supported local repair/reindex command would also help users recover existing state without manual SQLite edits.
changed the title [-]Codex Windows app: project chats disappear after update and after first response[/-][+][L] Codex Windows app: project chats disappear after update and after first response[/+]on Jul 31, 2026
changed the title [-][L] Codex Windows app: project chats disappear after update and after first response[/-][+][M] Codex Windows app: project chats disappear after update and after first response[/+]on Jul 31, 2026
changed the title [-][M] Codex Windows app: project chats disappear after update and after first response[/-][+]🩹🩹 Codex Windows app: project chats disappear after update and after first response[/+]on Aug 3, 2026
Activity
github-actions commentedon Jun 10, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
EngineeringElation commentedon Jun 27, 2026
Adding a fresh Windows repro after updating to a newer Codex Desktop build. This is sanitized for public GitHub; exact thread id and exact local path are omitted here, but I have them available for private /feedback.
Environment:
OpenAI.Codex_26.623.5175.0_x64__2p2nqsd0c76g0OpenAI.Codex_26.623.3763.0_x64__2p2nqsd0c76g026.623.414150.142.3gpt-5.5,xhighC:\Users\<user>\Code\Unreal\<project>Fresh repro:
Local evidence:
state_5.sqliterow exists for the affected thread.thread_source='user',source='vscode',archived=0,archived_at=NULL.cwduses the Windows verbatim-prefix form:\\?\C:\Users\<user>\Code\Unreal\<project>.C:\Users\<user>\.codex\sessions\...and was about 609 KB.preview=''andfirst_user_message=''in the affected DB row.Direct access works:
codex_app.read_threadby id succeeds.Normal discovery fails:
codex_app.list_threadstop 50 omits the affected thread even though it is one of the newest DB rows.codex_app.list_threadsquery for the exact title returns[].codex_app.list_threadsquery for a title keyword returns[].Local DB pattern on this machine:
131preview:22cwdstarts with\\?\:131Relevant log signals around the affected thread:
thread/readresumed the rollout successfully.thread/name/updatedset the title.incremental request failed, items didn't match.unhandled responses event: response.function_call_arguments.delta/done.This looks related to #25463, #27243, and the closed duplicate #22777. My current hypothesis is that two issues overlap on Windows:
\\?\cwd normalization mismatch.thread/list/ search can drop valid sessions whenpreviewandfirst_user_messageare blank or preview reconstruction fails. Directread_threadstill works, so the thread should probably appear as a title-only row instead of disappearing.Expected behavior: valid, unarchived local user threads with existing rollout files should remain visible in sidebar/list/search even if preview derivation fails.
Is there a supported local repair/reindex command for this state, and is
thread/listbeing changed to tolerate blank preview / preview reconstruction failures?EngineeringElation commentedon Jun 27, 2026
Follow-up after more local diagnosis on the same Windows machine. This is still sanitized; exact local thread ids and exact local username are omitted publicly.
I found two separate failure modes that overlap:
1. Blank previews make threads invisible to the normal visible-thread path
The local
threadstable has partial indexes that only include rows with non-empty preview text:The newest missing chats had:
So those rows were valid and readable, but excluded from the visible-index condition. They were mostly attachment-only / pasted-text-request chats where the title was generated later.
A local test repair that set
preview = titlefor active user rows with blank previews changed 23 rows. After that, the DB had:That appears to address one class of missing thread metadata, though the running app process still had stale list/search state until refresh/restart.
2. Project hierarchy still breaks because live app state rewrites cwd back to
\\?\...The same machine also has the Windows path-normalization issue from #27243. The saved project root is normal:
But affected
threads.cwdrows are rewritten to:I stripped the
\\?\prefix fromthreads.cwdas a local SQLite test. It initially made the DB match the saved project root, but while Codex was still running the app/sync/reconciliation path rewrote many rows back to the prefixed form almost immediately.Current counts after that live rewrite:
A read-only finder for the affected project currently reports:
Pin/unpin behavior
Pinning one hidden thread made it visible/recoverable. After unpinning it, it disappeared again. That suggests pinned threads are shown through a different surface that bypasses or supplements the broken project/list discovery path. Once unpinned, the thread falls back into the broken combination of
cwdmismatch / stale discovery.Why this seems actionable
I think there are two fixes needed:
thread/list/ search / sidebar should not drop valid active rows whenpreviewis blank. It should render a title-only fallback or derive preview from the first readable user item, even for attachment-only prompts.A supported local repair/reindex command would also help users recover existing state without manual SQLite edits.
[-]Codex Windows app: project chats disappear after update and after first response[/-][+][L] Codex Windows app: project chats disappear after update and after first response[/+][-][L] Codex Windows app: project chats disappear after update and after first response[/-][+][M] Codex Windows app: project chats disappear after update and after first response[/+][-][M] Codex Windows app: project chats disappear after update and after first response[/-][+]🩹🩹 Codex Windows app: project chats disappear after update and after first response[/+]