openai / openai/codex

Codex goal spent 4+ hours without verifying the primary objective and repeatedly continued after stopping discussions

Open
#43,086 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

agent bug CLI model-behavior
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What version of Codex CLI is running?

codex-cli 0.153.4

What subscription do you have?

Pro 5x

Which model were you using?

gpt-6-astra

What platform is your computer?

Linux 6.18.33.2-microsoft-standard-WSL2 x86_64 x86_64

What terminal emulator and version are you using (if applicable)?

wsl2

Codex doctor report
{
  "schemaVersion": 1,
  "generatedAt": "1788637567s since unix epoch",
  "overallStatus": "ok",
  "codexVersion": "0.153.4",
  "checks": {
    "app_server.status": {
      "id": "app_server.status",
      "category": "app-server",
      "status": "ok",
      "summary": "background server is running",
      "details": {
        "app-server version": "0.153.4",
        "control socket": "/home/tomlab/.codex/app-server-control/app-server-control.sock",
        "daemon state dir": "/home/tomlab/.codex/app-server-daemon",
        "mode": "persistent",
        "pid file": "/home/tomlab/.codex/app-server-daemon/app-server.pid (file)",
        "settings": "/home/tomlab/.codex/app-server-daemon/settings.json (file)",
        "status": "running",
        "update-loop pid file": "/home/tomlab/.codex/app-server-daemon/app-server-updater.pid (file)"
      },
      "remediation": null,
      "durationMs": 61
    },
    "auth.credentials": {
      "id": "auth.credentials",
      "category": "auth",
      "status": "ok",
      "summary": "auth is configured",
      "details": {
        "auth file": "/home/tomlab/.codex/auth.json",
        "auth storage mode": "File",
        "stored API key": "false",
        "stored ChatGPT tokens": "true",
        "stored agent identity": "false",
        "stored auth mode": "chatgpt"
      },
      "remediation": null,
      "durationMs": 0
    },
    "config.load": {
      "id": "config.load",
      "category": "config",
      "status": "ok",
      "summary": "config loaded",
      "details": {
        "CODEX_HOME": "/home/tomlab/.codex",
        "config.toml": "/home/tomlab/.codex/config.toml",
        "config.toml parse": "ok",
        "cwd": "/home/tomlab/repos/uberguruv2/live-music",
        "enabled feature flags": "shell_tool, view_image, sleep_tool, unified_exec, unified_exec_zsh_fork, shell_snapshot, content_item_kinds, code_mode_host, terminal_resize_reflow, sqlite, memories, hooks, enable_request_compression, unbounded_connection_retries, multi_agent, apps, tool_search_always_defer_mcp_tools, tool_suggest, plugins, in_app_browser, in_app_chat, in_app_dictation, in_app_local_automation, in_app_updates, browser_use, browser_use_full_cdp_access, browser_use_external, computer_use, remote_plugin, plugin_sharing, image_generation, resize_all_images, item_ids, skill_mcp_dependency_install, skill_search, mentions_v2, steer, guardian_approval, goals, collaboration_modes, tool_call_mcp_elicitation, auth_elicitation, personality, fast_mode, tui_app_server, remote_compaction_v2, compaction_image_budget, workspace_dependencies",
        "feature flag overrides": "memories=true",
        "feature flags enabled": "48",
        "log dir": "/home/tomlab/.codex/log",
        "mcp servers": "4",
        "model": "gpt-6-astra",
        "model provider": "openai",
        "sqlite home": "/home/tomlab/.codex"
      },
      "remediation": null,
      "durationMs": 0
    },
    "git.environment": {
      "id": "git.environment",
      "category": "git",
      "status": "ok",
      "summary": "git version 2.43.0",
      "details": {
        ".git entry": "directory",
        "PATH git #1": "/usr/bin/git",
        "PATH git #2": "/bin/git",
        "PATH git entries": "2",
        "git branch": "main",
        "git build options": "git version 2.43.0; cpu: x86_64; no commit associated with this build; sizeof-long: 8; sizeof-size_t: 8; shell-path: /bin/sh",
        "git exec path": "/usr/lib/git-core",
        "git version": "git version 2.43.0",
        "repo detected": "true",
        "repo root": "/home/tomlab/repos/uberguruv2/live-music",
        "selected git": "/usr/bin/git"
      },
      "remediation": null,
      "durationMs": 87
    },
    "installation": {
      "id": "installation",
      "category": "install",
      "status": "ok",
      "summary": "installation looks consistent",
      "details": {
        "PATH codex #1": "/home/tomlab/.local/bin/codex",
        "PATH codex #2": "/home/tomlab/.local/bin/codex",
        "PATH codex #3": "/home/tomlab/.local/bin/codex",
        "PATH codex #4": "/home/tomlab/.local/bin/codex",
        "PATH codex #5": "/home/tomlab/.local/bin/codex",
        "PATH codex entries": "5",
        "current executable": "/home/tomlab/.codex/packages/standalone/releases/0.153.4-x86_64-unknown-linux-musl/bin/codex",
        "install context": "standalone (unix, package /home/tomlab/.codex/packages/standalone/releases/0.153.4-x86_64-unknown-linux-musl, bin /home/tomlab/.codex/packages/standalone/releases/0.153.4-x86_64-unknown-linux-musl/bin, resources /home/tomlab/.codex/packages/standalone/releases/0.153.4-x86_64-unknown-linux-musl/codex-resources, path /home/tomlab/.codex/packages/standalone/releases/0.153.4-x86_64-unknown-linux-musl/codex-path)",
        "managed by Vite+": "false",
        "managed by bun": "false",
        "managed by npm": "false",
        "managed by pnpm": "false",
        "managed package root": "not set"
      },
      "remediation": null,
      "durationMs": 48
    },
    "mcp.config": {
      "id": "mcp.config",
      "category": "mcp",
      "status": "ok",
      "summary": "MCP configuration is locally consistent",
      "details": {
        "configured servers": "4",
        "disabled servers": "0",
        "stdio servers": "3",
        "streamable_http servers": "1"
      },
      "remediation": null,
      "durationMs": 337
    },
    "network.env": {
      "id": "network.env",
      "category": "network",
      "status": "ok",
      "summary": "network-related environment looks readable",
      "details": {
        "managed proxy": "not configured",
        "proxy env vars": "none",
        "respect system proxy": "disabled"
      },
      "remediation": null,
      "durationMs": 0
    },
    "network.provider_reachability": {
      "id": "network.provider_reachability",
      "category": "reachability",
      "status": "ok",
      "summary": "active provider endpoints are reachable over HTTP",
      "details": {
        "ChatGPT inference URL": "https://chatgpt.com/backend-api/<redacted> reachable (HTTP 405)",
        "reachability mode": "ChatGPT auth"
      },
      "remediation": null,
      "durationMs": 136
    },
    "network.websocket_reachability": {
      "id": "network.websocket_reachability",
      "category": "websocket",
      "status": "ok",
      "summary": "Responses WebSocket handshake succeeded",
      "details": {
        "DNS": "2 IPv4, 2 IPv6, first IPv4",
        "auth mode": "chatgpt",
        "connect timeout": "15000 ms",
        "endpoint": "wss://chatgpt.com/backend-api/<redacted>",
        "handshake result": "HTTP 101 Switching Protocols",
        "model provider": "openai",
        "provider name": "OpenAI",
        "proxy env vars": "none",
        "reasoning header": "false",
        "server model present": "false",
        "supports websockets": "true",
        "wire API": "responses"
      },
      "remediation": null,
      "durationMs": 705
    },
    "runtime.provenance": {
      "id": "runtime.provenance",
      "category": "runtime",
      "status": "ok",
      "summary": "running standalone on linux-x86_64",
      "details": {
        "commit": "unknown",
        "current executable": "/home/tomlab/.codex/packages/standalone/releases/0.153.4-x86_64-unknown-linux-musl/bin/codex",
        "install method": "standalone (unix, package /home/tomlab/.codex/packages/standalone/releases/0.153.4-x86_64-unknown-linux-musl, bin /home/tomlab/.codex/packages/standalone/releases/0.153.4-x86_64-unknown-linux-musl/bin, resources /home/tomlab/.codex/packages/standalone/releases/0.153.4-x86_64-unknown-linux-musl/codex-resources, path /home/tomlab/.codex/packages/standalone/releases/0.153.4-x86_64-unknown-linux-musl/codex-path)",
        "platform": "linux-x86_64",
        "version": "0.153.4"
      },
      "remediation": null,
      "durationMs": 0
    },
    "runtime.search": {
      "id": "runtime.search",
      "category": "search",
      "status": "ok",
      "summary": "search is OK (bundled)",
      "details": {
        "search command": "/home/tomlab/.codex/packages/standalone/releases/0.153.4-x86_64-unknown-linux-musl/codex-path/rg",
        "search command readiness": "file exists",
        "search provider": "bundled"
      },
      "remediation": null,
      "durationMs": 0
    },
    "sandbox.helpers": {
      "id": "sandbox.helpers",
      "category": "sandbox",
      "status": "ok",
      "summary": "sandbox configuration is readable",
      "details": {
        "approval policy": "OnRequest",
        "codex-linux-sandbox helper": "/home/tomlab/.codex/tmp/arg0/codex-arg0qDqVKr/codex-linux-sandbox",
        "execve wrapper helper": "/home/tomlab/.codex/tmp/arg0/codex-arg0qDqVKr/codex-execve-wrapper",
        "filesystem sandbox": "restricted",
        "network sandbox": "restricted"
      },
      "remediation": null,
      "durationMs": 0
    },
    "security.endpoint": {
      "id": "security.endpoint",
      "category": "security",
      "status": "ok",
      "summary": "endpoint protection is not inspected on this platform",
      "details": {
        "endpoint products": "not inspected on this platform"
      },
      "remediation": null,
      "durationMs": 0
    },
    "state.paths": {
      "id": "state.paths",
      "category": "state",
      "status": "ok",
      "summary": "state paths and databases are inspectable",
      "details": {
        "CODEX_HOME": "/home/tomlab/.codex (dir)",
        "active rollout files": "339 files, 1490236537 total bytes, 4395977 average bytes",
        "archived rollout files": "0 files, 0 total bytes, 0 average bytes",
        "goals DB": "/home/tomlab/.codex/goals_1.sqlite (file)",
        "goals DB integrity": "ok",
        "log DB": "/home/tomlab/.codex/logs_2.sqlite (file)",
        "log DB integrity": "ok",
        "log dir": "/home/tomlab/.codex/log (missing)",
        "memories DB": "/home/tomlab/.codex/memories_1.sqlite (file)",
        "memories DB integrity": "ok",
        "queue DB": "/home/tomlab/.codex/queue_1.sqlite (file)",
        "queue DB integrity": "ok",
        "sqlite home": "/home/tomlab/.codex (dir)",
        "standalone release cache": "9 entries in /home/tomlab/.codex/packages/standalone/releases",
        "state DB": "/home/tomlab/.codex/state_5.sqlite (file)",
        "state DB integrity": "ok",
        "thread history DB": "/home/tomlab/.codex/thread_history_1.sqlite (file)",
        "thread history DB integrity": "ok"
      },
      "remediation": null,
      "durationMs": 818
    },
    "state.rollout_db_parity": {
      "id": "state.rollout_db_parity",
      "category": "threads",
      "status": "ok",
      "summary": "rollout files and state DB thread inventory agree",
      "details": {
        "default model provider": "openai",
        "rollout DB active files": "339",
        "rollout DB active rows": "339",
        "rollout DB archive mismatches": "0",
        "rollout DB archived files": "0",
        "rollout DB archived rows": "0",
        "rollout DB duplicate DB paths": "0",
        "rollout DB duplicate rollout thread ids": "0",
        "rollout DB malformed file names": "0",
        "rollout DB missing active rows": "0",
        "rollout DB missing archived rows": "0",
        "rollout DB model providers": "openai=339",
        "rollout DB rows": "339",
        "rollout DB scan cap reached": "false",
        "rollout DB scan errors": "0",
        "rollout DB sources": "subagent:thread_spawn=214, subagent:other=118, vscode=4, cli=3",
        "rollout DB stale rows": "0"
      },
      "remediation": null,
      "durationMs": 281
    },
    "system.disk": {
      "id": "system.disk",
      "category": "disk",
      "status": "ok",
      "summary": "sufficient free disk space (110.5 GiB)",
      "details": {
        "CODEX_HOME available": "110.5 GiB",
        "failure threshold": "1.0 GiB",
        "warning threshold": "5.0 GiB",
        "worktree available": "110.5 GiB"
      },
      "remediation": null,
      "durationMs": 0
    },
    "system.environment": {
      "id": "system.environment",
      "category": "system",
      "status": "ok",
      "summary": "OS language C",
      "details": {
        "EDITOR": "not set",
        "GH_PAGER": "set",
        "GIT_PAGER": "set",
        "LANG": "C.UTF-8",
        "LC_ALL": "C.UTF-8",
        "LC_CTYPE": "C.UTF-8",
        "PAGER": "set",
        "VISUAL": "not set",
        "os": "Ubuntu 24.4.0 (noble) [64-bit]",
        "os language": "C",
        "os type": "Ubuntu",
        "os version": "24.4.0"
      },
      "remediation": null,
      "durationMs": 9
    },
    "terminal.env": {
      "id": "terminal.env",
      "category": "terminal",
      "status": "ok",
      "summary": "terminal metadata was detected",
      "details": {
        "COLORTERM": "truecolor",
        "DISPLAY": "present",
        "NO_COLOR": "1",
        "WAYLAND_DISPLAY": "present",
        "WSL_DISTRO_NAME": "present",
        "WSL_INTEROP": "present",
        "WT_SESSION": "present",
        "color output": "disabled (NO_COLOR)",
        "effective locale": "C.UTF-8",
        "stderr is terminal": "false",
        "stdin is terminal": "false",
        "stdout is terminal": "false",
        "terminal": "Windows Terminal",
        "terminal size": "80x24"
      },
      "remediation": null,
      "durationMs": 2
    },
    "terminal.title": {
      "id": "terminal.title",
      "category": "title",
      "status": "ok",
      "summary": "terminal title default",
      "details": {
        "terminal title activity": "true",
        "terminal title items": "activity, project-name",
        "terminal title project source": "git repo root",
        "terminal title project value": "live-music",
        "terminal title source": "default"
      },
      "remediation": null,
      "durationMs": 0
    },
    "updates.status": {
      "id": "updates.status",
      "category": "updates",
      "status": "ok",
      "summary": "update configuration is locally consistent",
      "details": {
        "cached latest version": "0.153.3",
        "check for update on startup": "true",
        "last checked at": "2026-09-04T19:17:52.502331781Z",
        "latest version": "0.153.4",
        "latest version status": "current version is not older",
        "update action": "standalone installer",
        "version cache": "/home/tomlab/.codex/version.json"
      },
      "remediation": null,
      "durationMs": 342
    }
  }
}
What issue are you seeing?

Codex spent over four hours on an explicit goal to reduce browser-scraping memory consumption and verify the changes end to end, but did not establish a comparable production baseline before implementing and deploying multiple changes.

The main issues were:

  • Poor prioritization: repeated implementation, PRs and validation without first securing the measurements needed to prove the objective.
  • Excessive execution overhead and scope expansion.
  • Confusing stopping behavior: automatic goal continuations repeatedly resumed after discussions about stopping, requiring further intervention.
  • Weak outcome verification: the final production run demonstrated successful scraping, but could not quantify memory savings because other jobs overlapped and no comparable baseline existed.

Useful changes were delivered; this is not a claim that nothing worked. The failure was spending disproportionate time without demonstrating the primary requested outcome.

Expected behavior: establish a baseline first, prioritize measurable changes, use bounded verification, and provide clear, reliable control over stopping autonomous work.

Relevant scope: “Browser Scraping Memory Improvement” on September 5, 2026. This session contains unrelated topics that should be excluded from the investigation.

Codex CLI version: 0.153.4.

What steps can reproduce the bug?

Uploaded thread: 01a05e98-7ccc-7bd0-bf64-a421d0a6f818

What is the expected behavior?

• Codex should translate the approved goal into measurable acceptance criteria and establish a comparable memory baseline before making optimization changes.

It should prioritize the highest-impact changes, verify memory reduction under comparable workloads, and confirm that event coverage, freshness and correctness are preserved.

If the required measurement is unavailable, it should identify that limitation early rather than spend hours implementing changes whose primary benefit cannot be verified.

Work should remain proportionate, with bounded verification and clear checkpoints—not repeated speculative optimizations or redundant validation.

Stopping autonomous work should be clear and reliable. Codex should distinguish stopping execution from completing the objective, without falsely claiming success or repeatedly resuming contrary to the user's direction.

Additional information

• Environment: Codex CLI 0.153.4, Ubuntu 24.04 under WSL, Windows Terminal. Doctor JSON attached.

Relevant goal: “implement Browser Scraping Memory Improvement, with end to end tests.”

The repository requires incremental PRs, tests, deployment and live verification. These requirements explain some overhead, but the agent should have planned the measurement strategy before implementation.

After I explicitly authorized a production verification scrape, it completed in 530 seconds: 171 sources, 4,405 upserts and zero browser deferrals. Sampled total worker memory ranged from 394–793 MiB. Other jobs overlapped, so these
measurements did not establish a before/after memory reduction.

Useful changes were deployed; the complaint concerns execution efficiency, measurement discipline and confusing goal-stopping behavior—not a total implementation failure.

The session contains unrelated topics. Please focus on the browser-memory goal and the subsequent discussions about excessive runtime, bounded verification and stopping.

The cause of the repeated continuations is unknown; please investigate whether goal orchestration, model behavior or their interaction contributed.

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

Reproduce the behavior with Codex CLI 0.153.4 using the reported goals configuration and inspect the goals database at /home/tomlab/.codex/goals_1.sqlite. Trace when the primary objective is verified and how stopping discussions is handled; done means reproducing the excessive run and documenting or testing corrected stopping behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.