Codex Desktop regression: local conversation renderer crashes on older Windows sessions with internal git directive cwd payload
Bug Report
Description
After updating Codex Desktop on Windows, multiple existing local conversations in one project started failing to open in the Desktop UI. The app showed only the generic error screen (Ocurrió un error / “An error occurred”).
The same conversations could still be resumed from the Codex CLI, and the local JSONL session files were valid. This points to a Desktop renderer/parser regression rather than project corruption or invalid session storage.
The affected conversations were older and/or long local sessions associated with a Windows workspace path similar to:
C:\Users\<user>\Documents\Cursos\Proptech
Environment
- Platform: Windows x64
- OS: Microsoft Windows NT 10.0.26200.0
- Codex Desktop package:
OpenAI.Codex_26.513.3673.0_x64__2p2nqsd0c76g0 - Codex CLI:
codex-cli 0.130.0 - Shell: PowerShell 7.6.1
- Locale:
es-CO
What happened
- Open Codex Desktop after the recent update.
- Select older existing local conversations under a project.
- Desktop loads the thread metadata successfully, then the conversation view crashes into the generic error page.
- The same conversation can still be resumed from the CLI.
Evidence from local logs
The Desktop logs showed successful thread/read and thread/resume calls, followed by a renderer error boundary in the local conversation page:
method=thread/read errorCode=null
method=thread/resume errorCode=null
error boundary ... name=LocalConversationPage
The failing component stack included:
app://-/assets/markdown-D32gobzN.js
app://-/assets/local-conversation-thread-BKrlVhAv.js
app://-/assets/local-conversation-page-Vm2E5OJ5.js
The relevant error was:
errorMessage="invalid syntax at line 1 col 5:
1 cwd=\"C:\\Users\\<user>\\Documents\\Cursos\\Proptech\"
^"
A similar failure also appeared with branch metadata included:
errorMessage="invalid syntax at line 1 col 5:
1 cwd=\"C:\\Users\\<user>\\Documents\\Cursos\\Proptech\" branch=\"codex/billing-foundation-compatible\"
^"
Local investigation
The affected local session files were stored under:
C:\Users\<user>\.codex\sessions\...
One problematic session was ~177 MB, valid JSONL, and contained many compacted entries plus old internal git directive records. A broader scan found 126 candidate local session files containing either the project path or old internal git directive content.
The JSONL files parsed successfully before repair, so this did not appear to be a malformed JSONL/session-file problem.
Workaround that fixed it locally
A backup was made first. Then the local sessions were sanitized by:
- Removing
type: compactedJSONL events from affected local session files. - Replacing the old internal git directive prefix (the prefix made of two colons followed by
git-) with inert text so the Desktop markdown/directive parser would not try to parse it. - Revalidating the rewritten JSONL files.
Results of the local repair:
Candidate local sessions checked: 126
Files modified: 36
Compacted events removed: 90
Old git-directive lines sanitized: 294
Remaining old directive files: 0
JSONL validation failures after repair: 0
After this repair, all previously failing chats opened normally in Codex Desktop again.
Expected behavior
Codex Desktop should tolerate older local session history and internal directive records without crashing the conversation view. If a historical directive payload is no longer parseable, the renderer should degrade gracefully, ignore the unsupported directive, or render it as plain text instead of failing the whole conversation page.
Actual behavior
The local conversation page crashes after thread read/resume succeeds, apparently while rendering old internal git directive content whose payload starts with a Windows cwd=... attribute string.
Notes
I have not attached full session files because they may contain private conversation history. The key signal is that valid JSONL sessions with older internal git directive records can crash the Desktop renderer, while the CLI can still resume the same chats. Sanitizing only those old directives and compacted records restores Desktop access.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗