[Windows][Mobile Remote Control] Sending a message can create an unmaterialized ghost thread that cannot be resumed or archived
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Summary
When sending a message from ChatGPT mobile Remote Control to Codex Desktop, an intermittent failure can leave a task placeholder in the desktop sidebar without a corresponding thread record or rollout. The task then cannot be resumed or archived, and it remains visible after restarting the computer.
Environment
- Codex Desktop: 26.814.5167.0
- Bundled Codex CLI: 0.148.0-alpha.15
- Windows: 10.0.26200.9168
- Local projects hosted in WSL
Steps to reproduce
- Run Codex Desktop on Windows with a local WSL-backed project.
- From ChatGPT mobile Remote Control, open/control the desktop Codex task.
- Send a message. The issue is intermittent.
- A new task placeholder appears in the Codex Desktop sidebar.
- Open or resume that task.
- Try to archive it.
Observed behavior
- Opening/resuming fails with:
no rollout found for thread id <thread-id> - Archiving fails with the same missing-rollout condition, so the task remains in the sidebar.
- Restarting Codex Desktop or rebooting the computer does not remove it.
- This has occurred three times across two local projects.
- Local inspection showed:
- no matching row in the thread state database;
- no matching rollout JSONL;
- logs for
method=thread/resumewith error code-32600andfailureReason=rollout_not_found.
This appears to be a partially created/unmaterialized task: the sidebar entry becomes visible even though the backing thread and rollout were never committed.
Expected behavior
- A message sent through mobile Remote Control should atomically create/materialize the thread and rollout before the task is exposed in the desktop sidebar.
- If creation fails, the incomplete sidebar placeholder should be discarded automatically.
- Archive/delete should be able to clean up a placeholder whose rollout is missing.
Workaround
I was able to remove each ghost task only by manually synthesizing a minimal placeholder rollout and database entry, then archiving it through Codex Desktop. This should not be necessary and risks local state corruption if attempted by users.
Related issues
- #33120
- #37058
Privacy note
No conversation transcripts, complete thread IDs, local project paths, or full log files are included in this report.
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 by tracing the ChatGPT mobile Remote Control flow through thread creation and the desktop sidebar, then inspect thread/resume logs, the thread state database, and rollout JSONL handling. Reproduce the intermittent failure on Windows with a WSL-backed project and verify that creation is atomic, failed placeholders are discarded, and missing-rollout tasks can be archived or deleted.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- database, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100