[Windows App][Crash] read_thread on a ChatGPT conversation reference closes the app
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using (From “About Codex” dialog)?
26.818.5229.0 (package OpenAI.Codex_26.818.5229.0_x64__2p2nqsd0c76g0)
What subscription do you have?
ChatGPT subscription (exact tier not available in the reporting context)
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What issue are you seeing?
On Windows, the desktop app terminates after Codex tries to inspect a referenced ChatGPT conversation whose cached priorConversation preview is null.
The referenced item is correctly identified as kind: "chatgpt" by list_threads, but read_thread sends its ChatGPT conversation ID to the local Codex app-server method thread/read. The app server returns -32600 thread not loaded. That error is followed by an Electron main-process crash instead of being returned as a recoverable tool error. A manual restart is required.
Controlled reproduction (app-log timestamps are UTC; 09:04 JST):
2026-08-24T00:04:23.835Z dynamic_app_tool_server_request_received tool=read_thread
2026-08-24T00:04:23.854Z dynamic_app_tool_thread_read_started tool=read_thread
2026-08-24T00:04:23.920Z method=thread/read errorCode=-32600
2026-08-24T00:04:23.921Z Request failed: thread not loaded
Crashpad created a report 10.5 seconds later:
{"capture_kind":"crash","osarch":"x86_64","ptype":"browser"}
In Chromium/Electron terminology, ptype: "browser" identifies the Electron main process. From 2026-08-20 19:51 JST through 2026-08-24 09:04 JST, 19 app sessions ended with the same thread not loaded → Crashpad main-process crash sequence. Seventeen incidents involved one ChatGPT conversation and two involved another, so this is not specific to one conversation's content.
ChatGPT conversation IDs and conversation contents are intentionally omitted.
What steps can reproduce the bug?
- In a Codex task, reference an existing ChatGPT conversation.
- Ensure the generated reference payload has
priorConversation: null. - Ask Codex to inspect the referenced conversation.
- Codex invokes
read_threadwith the redacted ChatGPTconversationIdandturnLimit: 10. - The dynamic tool handler invokes local app-server
thread/read. - The app server returns
-32600 thread not loaded. - About 8–23 seconds later, the desktop app closes and must be restarted manually.
This was reproduced directly on 2026-08-24 at 09:04 JST.
What is the expected behavior?
read_thread should retrieve the referenced ChatGPT conversation. If that source cannot be read, it should return a non-fatal tool error explaining the failure. The Electron main process and desktop app must remain running.
Additional information
Routing evidence from list_threads (identifiers omitted):
{
"kind": "chatgpt",
"status": "idle",
"hostId": null
}
Codex threads include hostId: "local", but ChatGPT conversations do not expose a host/source value that callers can pass to read_thread. The likely defect is that the desktop dynamic-app-tool implementation does not preserve or resolve the backing kind before dispatching read_thread; a ChatGPT ID is routed to local thread/read, and the resulting rejection is not safely contained.
Suggested fix:
- Preserve the backing kind/source from the ChatGPT conversation reference.
- Route
kind: "chatgpt"IDs to the ChatGPT conversation reader rather than localthread/read. - Catch
-32600, timeouts, and source-resolution failures at the dynamic tool boundary and return a normal tool error. - Add a Windows regression test for a referenced ChatGPT conversation with
priorConversation: null. - Add a regression test proving an unknown ID returns a recoverable error and leaves the app running.
Additional environment checks:
- Installed executable signature is valid and signed by OpenAI OpCo, LLC.
- Microsoft Store updater returned
NoUpdatesat 2026-08-24 09:05 JST. - No raw logs are attached because session transcripts may contain sensitive content.
Temporary workaround: avoid chatgpt-conversation://... references with a null preview; paste the needed turns or attach a sanitized export.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the desktop dynamic-app-tool implementation around list_threads and read_thread, then trace how kind: "chatgpt" references are dispatched to local app-server thread/read. Reproduce the null priorConversation case on Windows and inspect the -32600 handling at the dynamic tool boundary. Done means ChatGPT references use the correct reader, failures become recoverable tool errors, and regression tests cover unknown IDs without closing the app.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- electron
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100