openai / openai/codex

Agent mindlessly polls long-running work instead of checking progress or advancing independent tasks

Open
#41,007 1 comment 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug computer-use model-behavior windows-os
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Summary

When Codex starts a long-running build or deployment, it can fall into a low-value polling loop: repeatedly re-observing substantially unchanged UI state instead of checking the authoritative progress source and using the wait interval for independent work that is already available.

This is not only a token-efficiency problem. It is an orchestration problem: the agent has enough context to identify useful parallel work, but behaves as though polling is the whole task.

Reproduction

  1. Ask Codex Desktop to work through a nested Windows VDI.
  2. Have it start a container build or deployment in a web dashboard.
  3. Leave other independent work available, such as:
    • inspect the build/deployment status or logs through the most direct available surface;
    • prepare the next code change;
    • inspect repository abstractions;
    • add tests;
    • validate a previously deployed endpoint.
  4. Observe Codex repeatedly capture or inspect the same waiting screen.
  5. Interrupt Codex and point out that it could check progress or do something else.
  6. In the observed case, the container build had already completed by the time of the interruption.

Actual behavior

  • Codex repeatedly polls an effectively unchanged surface.
  • It does not switch to an authoritative progress source when one is available.
  • It does not advance independent queued work during the wait.
  • It may miss that the asynchronous operation has already completed.
  • User intervention is required to redirect it from waiting to useful work.

Expected behavior

Codex should treat a long-running operation as asynchronous work:

  1. Prefer an authoritative, structured progress surface over repeated screenshots of an unchanged page.
  2. Choose a sensible/event-driven wait or a long checkpoint interval instead of short model-driven polling.
  3. While the operation is pending, execute safe independent work already in scope.
  4. Re-check the asynchronous operation after a meaningful event, elapsed checkpoint, or when the independent work finishes.
  5. If no useful independent work exists, remain efficiently idle rather than repeatedly reasoning about the same state.
  6. Detect and act on completion promptly.

A useful orchestration rule would be:

Before polling again, ask whether the pending operation has an authoritative status source and whether any independent in-scope task can make progress. Poll only if neither path can advance the task.

Why this is distinct from related issues

  • #13733 covers repeated background-process polling and full-history token cost.
  • #40299 covers unreliable subagent management and aggressive waiting.
  • #33485 covers waiting-status UI spam.

This report is narrower: the model fails to schedule useful independent work and fails to switch to the best progress source while a long-running build/deployment is pending.

Environment

  • Surface: Codex Desktop
  • Host: Windows
  • Target: nested Windows VDI
  • Workload: container build followed by deployment and endpoint validation
  • Observed: 2026-08-26

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

No implementation files or tests are named. Start by reproducing the Codex Desktop scenario with a long-running container build or deployment, then trace the orchestration path for pending work; done means it uses an authoritative status source, advances safe independent work, and avoids redundant polling.

Written by the indexing model from the issue text.

Assessment

Domain
ai, desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.