Codex Desktop repeatedly routes to wait(noop) without a running exec cell, causing tool-call loops and stalled subagents

Open 💬 1 comment Opened Jul 18, 2026 by Rinai-R

Environment

  • Product: Codex Desktop
  • OS: macOS (Darwin arm64)
  • Date observed: 2026-07-18
  • Workspace: FAIRY
  • GitHub account used to file: Rinai-R

Summary

Codex Desktop repeatedly routed tool calls to wait.wait with cell_id: "noop" even though no exec cell was running. This created a tool-call loop and prevented the main task from making progress. In the same session, subagent waiting/interruption state also appeared unreliable: waits timed out, interrupted agents could remain listed as running/interrupted, and follow-up routing to completed/interrupted subagents was not dependable.

Symptoms

  • The assistant repeatedly attempted a wait call like:
{ "cell_id": "noop", "yield_time_ms": 1000 }
  • The runtime returned:
Script error: exec cell noop not found
  • There was no known running exec cell corresponding to noop.
  • After the error, later attempts still routed back to wait(noop) instead of recovering to normal execution.
  • Subagent-related calls also showed stalled or inconsistent state, including repeated:
Wait timed out
  • Interrupting a subagent returned state indicating it had been running, e.g.:
"previous_status":"running"
  • After timeout/interrupt flows, child tasks could remain running or interrupted, and follow-up messages to completed/interrupted tasks did not reliably resume or complete the original work.

Expected behavior

  • wait should only be called with a real active exec cell id previously returned by exec.
  • If a stale or invalid cell id is somehow selected, Codex should recover and continue normal tool routing instead of repeatedly calling wait(noop).
  • Subagent wait/interrupt/follow-up state should converge: a timed-out or interrupted child should not leave the parent in a stalled loop, and follow-up routing should have predictable behavior.

Actual behavior

  • Codex Desktop repeatedly attempted wait(noop).
  • The runtime rejected it with exec cell noop not found.
  • The parent task was effectively stalled by repeated invalid wait routing.
  • Subagent wait/interruption/follow-up handling appeared to compound the stall.

Related issues

These look related but do not appear to cover the exact wait(noop) / nonexistent exec-cell route:

  • #24951
  • #31036
  • #32640
  • #33719
  • #32997
  • #32203
  • #32756

Notes

I searched for exact strings such as "exec cell noop", "wait(noop)", and "cell_id" "noop" in openai/codex before filing and did not find an exact duplicate.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗