Desktop 26.908.40834 creates unsolicited empty tasks in one project, even after restart; opening them fails with no rollout found
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Environment
macOS, Codex Desktop 26.908.40834. One affected local project; exact project path and account identifiers omitted.
Observed
The user reports repeated unsolicited empty tasks in only one project, with no unsent new-task text. A complete quit and relaunch does not prevent recurrence.
On 2026-09-13, a new app process started at 11:46:04.863 UTC. At 11:46:41 UTC, a fresh task was created by a Desktop thread/start request (dynamic_tool_count=23). Opening it at 11:49:55.710 UTC produced JSON-RPC -32600, failureReason=rollout_not_found, and no rollout found for thread id <redacted>.
The task had no row in local_thread_catalog or state_5.sqlite.threads when inspected afterward. A separate earlier occurrence had the same failure.
Local workaround disclosure
Before the restart test, 16 verified empty catalog registrations were backed up and removed. A custom project-scoped SQLite BEFORE INSERT trigger ignores a narrowly matched empty initial metadata shape. The failure existed before this intervention and recurred afterward despite no matching catalog row. Other catalog rows were preserved. This intervention may affect catalog observations and is not a supported fix. The signed application bundle was not modified.
Investigation limits
The initiating UI event and whether the individual request was prewarm are not established. Inspection found both response observation and a live thread/started handler capable of adding a conversation independently of the catalog DB, but runtime notification ordering has not been captured.
Please investigate the source of the unsolicited creation and reconciliation of tasks without durable history. No full transcripts, raw logs, task IDs, usernames, or local paths are included.
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
Trace the Desktop thread/start request and the live thread/started handler, comparing response observation with local_thread_catalog and state_5.sqlite.threads. Capture notification ordering during recurrence and determine which path creates the empty task. Done means identifying the unsolicited creator and preventing or reconciling tasks that lack durable history and produce rollout_not_found.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, rust, sqlite
- Domain
- databases, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100