[macOS Desktop plus Android Remote] list threads reaches app server but never completes; UI sidebar remains healthy.
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using (From “About Codex” dialog)?
26.810.41047
What subscription do you have?
Pro x 20
What platform is your computer?
Darwin 24.6.0 arm64 arm
What issue are you seeing?
The Desktop UI continues to show projects, pinned chats, and recent chats, but agent-facing codex_app thread-management calls are unreliable on both Desktop and Android Remote.
An agent list_threads call can remain pending indefinitely with no structured error, preventing a fresh task from discovering existing conversations that are visible in the UI.
Remote project creation also failed with:
create_thread received invalid arguments
What steps can reproduce the bug?
- Pair ChatGPT on Android with a local macOS Codex Desktop host.
- Confirm that projects and existing chats remain visible in the Desktop UI.
- From an agent task, call
codex_app.list_threads. - Observe that the call can remain pending indefinitely without a result or structured error.
- Restart Desktop and retry. The UI sidebar can still list chats, while a later agent-facing list call again fails to settle.
Read-only log evidence from the failing session:
- Immediately after restart, UI-originated
thread/listcompleted in roughly 1–11 ms. - Later, four
thread/listrequests reached the local app-server. - No matching completion/response record was logged for those request IDs.
- After pending calls were cancelled, the app-server logged
CancelledErrorfollowed bycould not find callback. - Unrelated account, configuration, filesystem, and thread-read requests continued to complete promptly.
What is the expected behavior?
Every codex_app thread-management call should return either a result or a structured, bounded timeout/error.
Agent-facing thread discovery should not fail while the Desktop UI can list the same chats. Remote project discovery must return identifiers accepted by project task creation for the same caller.
Additional information
The session index JSONL and global JSON parsed successfully, and the thread-state SQLite database passed its integrity check. No local state was modified.
No correlated Remote-disconnect, EPIPE, or thread_list_unavailable event appeared in the inspected log window.
Related issues: #32553, #36404, and #37668. This case is closest to that family but differs from #37668 because the local thread/list requests did reach the app-server before failing to settle.
Prompts, absolute paths, conversation IDs, and raw logs are intentionally omitted for privacy; redacted diagnostics can be provided through a private support channel.
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 with the agent-facing codex_app.list_threads and create_thread calls, then trace their requests through the local app-server alongside the UI-originated thread/list requests. Use the timing and cancellation logs as the first diagnostic evidence, and compare remote project identifiers with task-creation inputs. Done means each thread-management call returns a result or structured bounded error and remote project discovery produces accepted identifiers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, macos, rust
- Domain
- api, backend, desktop, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100