🩹🩹 Windows: new local chat in a ChatGPT project fails to sync project context
What version of the Codex App are you using (From “About Codex” dialog)?
26.721.3996.0 (Microsoft Store package OpenAI.Codex_26.721.3996.0_x64)
What subscription do you have?
ChatGPT subscription; exact tier omitted
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What issue are you seeing?
On the combined ChatGPT/Codex Windows desktop app, creating a new local/Work chat from a ChatGPT project fails consistently with two UI errors:
Error creating chat
Could not sync ChatGPT project context
Could not use this project for a local chat
Creating the ChatGPT project succeeds, and existing chats in that project can still be continued. Starting a new chat outside a ChatGPT project also works. The failure is specific to creating a new local chat with ChatGPT project context.
Local diagnostics show that the app successfully creates a redacted mirror at %USERPROFILE%\.codex\.chatgpt-projects\<project-id>, including AGENTS.md, sources\, and metadata, but the subsequent composer submission still fails with Could not sync ChatGPT project context.
A fresh attempt also logged this warning before the submission failed (PII and IDs redacted):
[git-init-watcher] Failed to watch workspace root for git init
cwd=%USERPROFILE%\.codex\.chatgpt-projects\<project-id>
errorCode=ENOENT
errorMessage=ENOENT: no such file or directory, watch '<redacted-project-mirror>'
[electron-message-handler] [Composer] submit failed
cwd=%USERPROFILE%\.codex\.chatgpt-projects\<project-id>
errorMessage=Could not sync ChatGPT project context
mode=local
What steps can reproduce the bug?
- Install/open the combined ChatGPT/Codex desktop app on Windows.
- Create a ChatGPT project, or select an existing ChatGPT project in the Projects sidebar.
- Choose the local/Work chat mode.
- Enter any non-sensitive prompt and submit it.
- Observe both project-context synchronization errors and no usable new project chat.
Reproduces across multiple ChatGPT projects. Fully quitting and reopening the app does not resolve it. Moving the generated local project-mirror cache aside and allowing the app to rebuild it also does not resolve it.
What is the expected behavior?
A new local/Work chat should be created inside the selected ChatGPT project and should receive that project's instructions and source files. The new chat should then appear in the project's Chats section.
Additional information
The issue began after upgrading to the combined app. Existing chats remain usable, so this does not appear to be chat-data loss.
The generated mirror is created successfully on a clean attempt, but a later sync during composer submission fails. This suggests a Windows-specific ordering, watcher, or directory-locking race in the project-context synchronization path; that diagnosis is an inference from local behavior, not a confirmed root cause.
No raw logs are attached because they contain local identifiers. All excerpts above are manually redacted. Similar exact-error user reports appeared publicly after the same app update.
Impact
July 15–28, 2026
- Affected reporting users: Not established; feedback pieces and User Ops cases are not unique people.
- Estimated matching feedback: 0; User Ops cases: 0; cancellation surveys: 0.
5 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Additional confirmed reproduction on a newer Windows desktop build.
Environment
26.810.4967.010.0.26200, x64Observed behavior
Could not use this project for a local chat.AGENTS.md, two source files, and its metadata.``
text
``ChatGPT project context sync failed
stage=filesystem
sourceCount=2
syncFileCount=2
projectSaveCount=0
node_repl.exeprocesses from the bundled Codex runtime holding an open directory handle on:``
text
``%USERPROFILE%\.codex\.chatgpt-projects\<project-id>
This looks consistent with a Windows sync-ordering / atomic-directory-replacement race where an app-owned runtime opens the existing project mirror before the sync tries to replace it. That is an evidence-based inference, not a confirmed root cause.
No raw logs, local identifiers, project names, or user paths are attached. Please investigate the ordering between local chat resume/runtime startup and ChatGPT Project mirror refresh on Windows.
I am experiencing the same problem on Windows.
Environment:
no-active-thread-01a0416b-5f71-7df2-bf81-e26c5d612ca9Reproduction and observations:
@Chromeand see my open LinkedIn tab, so the Chrome connection itself can work.Expected behavior:
A Work/Codex chat should be usable inside an existing ChatGPT Project, inherit that project’s context, appear in Chrome extension chat search, and accept an explicitly attached
@Chrometab.Please let me know if the Chrome extension indexing/title behavior should be reported separately.
Additional confirmed reproduction with a newer Windows desktop build and process/CWD correlation.
Environment
26.820.9563.0projectKind=chatgpt, no local path/host binding)Observed behavior
``
text
``Could not use this project for a local chat
``
text
``ChatGPT project context sync failed
stage=filesystem
sourceCount=3
syncFileCount=3
Process/CWD timeline (UTC+08:00)
20:36:49: app-ownednode_repl.exeprocess A started with its CurrentDirectory set to:``
text
``%USERPROFILE%\.codex\.chatgpt-projects\<redacted-project-id>
20:38:04and20:38:59: project-context sync failed atstage=filesystem.20:44:06: app-ownednode_repl.exeprocess B started with the same mirror as its CurrentDirectory.20:45:47: the filesystem-stage sync failed again.This is consistent with an app-owned helper retaining the Project mirror as its CWD while Desktop attempts to refresh or replace that mirror on Windows. The evidence establishes the filesystem-stage failure and the process/CWD timing correlation; it does not prove the exact internal rename operation or Win32 error code, because the underlying filesystem exception was not retained in the available logs.
No processes were terminated and no mirror/configuration files were modified during this reproduction. Raw logs, the Project name/ID, local usernames, absolute paths, prompts, and source filenames are intentionally omitted.
Suggested areas to inspect:
node_repl.exestartup/resume and ChatGPT Project mirror synchronization.Additional isolation:
codex.exeholds the project mirror open during syncI was able to isolate a reproducible Windows filesystem lock that appears directly related to this issue.
Environment
OpenAI.Codex_26.825.3734.0_x6426.825.31414%USERPROFILE%\.codex\.chatgpt-projects\<project-id>Failure signature
All project sources had already synchronized when the filesystem stage failed.
Filesystem checks
stage=filesystemerror still reproduced after ACLs were clean, so ACLs were not the remaining cause.Directory-lock isolation
With ChatGPT/Codex fully closed, renaming the project mirror directory succeeded:
With ChatGPT/Codex open, the exact same rename failed:
Killing
node_repl.exealone did not release the lock.Terminating the main
codex.exeapp-server process while leaving the ChatGPT desktop app running immediately changed the same rename test to:User-visible result
Without closing the ChatGPT desktop app, I immediately retried opening the same ChatGPT Project in Work/local mode.
The project opened successfully.
After the successful sync, the desktop app automatically spawned a new
codex.exe, and the project continued working normally.Reproducible workaround
Then immediately retry opening/using the ChatGPT Project without closing the desktop app.
Likely failure mode
This strongly suggests a Windows directory-handle / lifecycle ordering race:
codex.exe(or a child whose lifetime is tied to it) retains a handle on the project directory.stage=filesystemerror.Evidence supporting this:
node_repl.exealone does not help;codex.exeimmediately makes the rename succeed;codex.exenormally.It may be worth auditing directory handles / process CWD inheritance and ensuring all project-directory handles are released before local ChatGPT Project mirror rotation on Windows.
No raw logs, usernames, SIDs, project IDs, project names, source filenames, prompts, or private local paths are included.