[desktop] Agent thread tools hang before reaching AppServerConnection
What version of the Codex App are you using (From “About Codex” dialog)?
26.803.41515 (build 6321); bundled Codex CLI 0.147.0-alpha.6.5
What subscription do you have?
Paid ChatGPT subscription (exact tier omitted from this public report)
What platform is your computer?
macOS 26.6 on Apple silicon
What issue are you seeing?
Agent-invoked codex_app thread-management tools can hang indefinitely before their requests reach the desktop app's AppServerConnection. Restarting the app temporarily restores the bridge, but the failure recurs.
In a failed call, the session rollout records the custom tool call starting, but the desktop logs contain no corresponding thread/name/set or thread/list request. During the same interval, UI-originated thread/list requests continue to complete in a few milliseconds. This indicates that the desktop App Server remains responsive and the failure occurs in the agent-tool bridge before AppServerConnection receives the request.
This reproduced twice on the same day. The first occurrence recovered after an app restart; the second occurred later in the restarted app session.
What steps can reproduce the bug?
- From an active Codex task, invoke
codex_app__set_thread_titlewith a valid title, for exampleAFK #107. - The tool call remains pending for more than 60 seconds and never returns.
- Invoke the independent
codex_app__list_threadstool. - That call also remains pending for more than 40 seconds and never returns.
- Inspect desktop logs for the same UTC interval: no matching
thread/name/setor tool-originatedthread/listrequest reachesAppServerConnection, while UI-originatedthread/listcalls still succeed.
What is the expected behavior?
The tool calls should return promptly, and the corresponding thread/name/set or thread/list request should be visible at AppServerConnection.
Additional information
- A direct stdio connection to
/Applications/ChatGPT.app/Contents/Resources/codex app-serversucceeded during the failure. Afterinitialize/initialized, boththread/readandthread/name/setcompleted normally, and the new thread name persisted. This bypasses the broken bridge and suggests the underlying App Server methods and thread state are healthy. - App restart is only a temporary recovery; the issue later recurred.
- The same task was successfully renamed through the direct App Server workaround without restarting the app.
- I searched open and closed issues for
thread/name/set,set_thread_title,list_threads, and desktop bridge hangs before filing this report and found no matching report. - I have retained the relevant session transcript and desktop logs. I did not include session identifiers or attach complete logs publicly because they may contain sensitive workspace information, but I can provide redacted excerpts through a private support channel if needed.
1 Comment
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action