openai / openai/codex

[Windows][Mobile Remote Control] Sending a message can create an unmaterialized ghost thread that cannot be resumed or archived

Open
#39,182 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

app bug remote session windows-os
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

  1. Run Codex Desktop on Windows with a local WSL-backed project.
  2. From ChatGPT mobile Remote Control, open/control the desktop Codex task.
  3. Send a message. The issue is intermittent.
  4. A new task placeholder appears in the Codex Desktop sidebar.
  5. Open or resume that task.
  6. 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/resume with error code -32600 and failureReason=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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.