Skip to content

use subagent but final return No agents completed yet #24342

Open

Description

@theload9638

What version of Codex CLI is running?

codex-cli 0.133.0

What subscription do you have?

pro

Which model were you using?

gpt-5.5

What platform is your computer?

Microsoft Windows NT 10.0.22631.0 x64

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

Windows Terminal

Codex doctor report

{
  "schemaVersion": 1,
  "generatedAt": "1779634050s since unix epoch",
  "overallStatus": "fail",
  "codexVersion": "0.133.0",
  "checks": {
    "app_server.status": {
      "id": "app_server.status",
      "category": "app-server",
      "status": "ok",
      "summary": "background server is not running",
      "details": {
        "control socket": "C:\\Users\\Lenovo\\.codex\\app-server-control\\app-server-control.sock",
        "daemon state dir": "C:\\Users\\Lenovo\\.codex\\app-server-daemon",
        "mode": "ephemeral",
        "pid file": "C:\\Users\\Lenovo\\.codex\\app-server-daemon\\app-server.pid (missing)",
        "settings": "C:\\Users\\Lenovo\\.codex\\app-server-daemon\\settings.json (missing)",
        "status": "not running",
        "update-loop pid file": "C:\\Users\\Lenovo\\.codex\\app-server-daemon\\app-server-updater.pid (missing)"
      },
      "remediation": null,
      "durationMs": 0
    },
    "auth.credentials": {
      "id": "auth.credentials",
      "category": "auth",
      "status": "ok",
      "summary": "auth is configured",
      "details": {
        "auth file": "C:\\Users\\Lenovo\\.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": "C:\\Users\\Lenovo\\.codex",
        "config.toml": "C:\\Users\\Lenovo\\.codex\\config.toml",
        "config.toml parse": "ok",
        "cwd": "C:\\Users\\Lenovo",
        "enabled feature flags": "shell_tool, shell_snapshot, terminal_resize_reflow, sqlite, hooks, enable_request_compression, multi_agent, apps, tool_suggest, plugins, plugin_hooks, in_app_browser, browser_use, browser_use_external, computer_use, plugin_sharing, image_generation, skill_mcp_dependency_install, steer, guardian_approval, goals, collaboration_modes, tool_call_mcp_elicitation, personality, fast_mode, tui_app_server, workspace_dependencies",
        "feature flag overrides": "none",
        "feature flags enabled": "27",
        "log dir": "C:\\Users\\Lenovo\\.codex\\log",
        "mcp servers": "5",
        "model": "gpt-5.5",
        "model provider": "openai",
        "sqlite home": "C:\\Users\\Lenovo\\.codex"
      },
      "remediation": null,
      "durationMs": 0
    },
    "installation": {
      "id": "installation",
      "category": "install",
      "status": "ok",
      "summary": "installation looks consistent",
      "details": {
        "PATH codex #1": "D:\\download\\nvm\\nodejs\\codex",
        "PATH codex #2": "D:\\download\\nvm\\nodejs\\codex.cmd",
        "PATH codex entries": "2",
        "current executable": "D:\\download\\nvm\\nvm\\v24.15.0\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\bin\\codex.exe",
        "install context": "npm (package D:\\download\\nvm\\nvm\\v24.15.0\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc, bin D:\\download\\nvm\\nvm\\v24.15.0\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\bin, resources D:\\download\\nvm\\nvm\\v24.15.0\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\codex-resources, path D:\\download\\nvm\\nvm\\v24.15.0\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\codex-path)",
        "managed by bun": "false",
        "managed by npm": "true",
        "managed package root": "D:\\download\\nvm\\nvm\\v24.15.0\\node_modules\\@openai\\codex",
        "npm update target": "D:\\download\\nvm\\nodejs\\node_modules\\@openai\\codex"
      },
      "remediation": null,
      "durationMs": 418
    },
    "mcp.config": {
      "id": "mcp.config",
      "category": "mcp",
      "status": "ok",
      "summary": "MCP configuration is locally consistent",
      "details": {
        "configured servers": "5",
        "disabled servers": "3",
        "stdio servers": "5"
      },
      "remediation": null,
      "durationMs": 42
    },
    "network.env": {
      "id": "network.env",
      "category": "network",
      "status": "ok",
      "summary": "network-related environment looks readable",
      "details": {
        "proxy env vars present": "HTTP_PROXY, HTTPS_PROXY, http_proxy, https_proxy"
      },
      "remediation": null,
      "durationMs": 0
    },
    "network.provider_reachability": {
      "id": "network.provider_reachability",
      "category": "reachability",
      "status": "fail",
      "summary": "one or more required provider endpoints are unreachable over HTTP",
      "details": {
        "ChatGPT base URL": "https://chatgpt.com/backend-api/ request timed out (required)",
        "reachability mode": "ChatGPT auth"
      },
      "remediation": "Check proxy, VPN, firewall, DNS, and custom CA configuration.",
      "durationMs": 3017
    },
    "network.websocket_reachability": {
      "id": "network.websocket_reachability",
      "category": "websocket",
      "status": "ok",
      "summary": "Responses WebSocket handshake succeeded",
      "details": {
        "DNS": "1 IPv4, 1 IPv6, first IPv6",
        "auth mode": "chatgpt",
        "connect timeout": "15000 ms",
        "endpoint": "wss://chatgpt.com/backend-api/<redacted>",
        "handshake result": "HTTP 101 Switching Protocols",
        "model provider": "openai",
        "models etag present": "true",
        "provider name": "OpenAI",
        "proxy env vars present": "HTTP_PROXY, HTTPS_PROXY, http_proxy, https_proxy",
        "reasoning header": "false",
        "server model present": "false",
        "supports websockets": "true",
        "wire API": "responses"
      },
      "remediation": null,
      "durationMs": 6175
    },
    "runtime.provenance": {
      "id": "runtime.provenance",
      "category": "runtime",
      "status": "ok",
      "summary": "running npm on windows-x86_64",
      "details": {
        "commit": "unknown",
        "current executable": "D:\\download\\nvm\\nvm\\v24.15.0\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\bin\\codex.exe",
        "install method": "npm (package D:\\download\\nvm\\nvm\\v24.15.0\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc, bin D:\\download\\nvm\\nvm\\v24.15.0\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\bin, resources D:\\download\\nvm\\nvm\\v24.15.0\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\codex-resources, path D:\\download\\nvm\\nvm\\v24.15.0\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\codex-path)",
        "platform": "windows-x86_64",
        "version": "0.133.0"
      },
      "remediation": null,
      "durationMs": 0
    },
    "runtime.search": {
      "id": "runtime.search",
      "category": "search",
      "status": "ok",
      "summary": "search is OK (bundled)",
      "details": {
        "search command": "D:\\download\\nvm\\nvm\\v24.15.0\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\codex-path\\rg.exe",
        "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": "Never",
        "codex-linux-sandbox helper": "none",
        "execve wrapper helper": "none",
        "filesystem sandbox": "unrestricted",
        "network sandbox": "enabled"
      },
      "remediation": null,
      "durationMs": 0
    },
    "state.paths": {
      "id": "state.paths",
      "category": "state",
      "status": "ok",
      "summary": "state paths and databases are inspectable",
      "details": {
        "CODEX_HOME": "C:\\Users\\Lenovo\\.codex (dir)",
        "active rollout files": "701 files, 850477587 total bytes, 1213234 average bytes",
        "archived rollout files": "146 files, 124945481 total bytes, 855790 average bytes",
        "goals DB": "C:\\Users\\Lenovo\\.codex\\goals_1.sqlite (file)",
        "goals DB integrity": "ok",
        "log DB": "C:\\Users\\Lenovo\\.codex\\logs_2.sqlite (file)",
        "log DB integrity": "ok",
        "log dir": "C:\\Users\\Lenovo\\.codex\\log (dir)",
        "sqlite home": "C:\\Users\\Lenovo\\.codex (dir)",
        "state DB": "C:\\Users\\Lenovo\\.codex\\state_5.sqlite (file)",
        "state DB integrity": "ok"
      },
      "remediation": null,
      "durationMs": 52810
    },
    "terminal.env": {
      "id": "terminal.env",
      "category": "terminal",
      "status": "ok",
      "summary": "terminal metadata was detected",
      "details": {
        "color output": "enabled",
        "stderr is terminal": "true",
        "stdin is terminal": "true",
        "stdout is terminal": "true",
        "terminal": "unknown",
        "terminal size": "120x30"
      },
      "remediation": null,
      "durationMs": 1
    },
    "updates.status": {
      "id": "updates.status",
      "category": "updates",
      "status": "ok",
      "summary": "update configuration is locally consistent",
      "details": {
        "cached latest version": "0.133.0",
        "check for update on startup": "true",
        "last checked at": "2026-05-24T09:42:34.471208400Z",
        "latest version": "0.133.0",
        "latest version status": "current version is not older",
        "npm update target": "D:\\download\\nvm\\nodejs\\node_modules\\@openai\\codex",
        "update action": "npm install -g @openai/codex",
        "version cache": "C:\\Users\\Lenovo\\.codex\\version.json"
      },
      "remediation": null,
      "durationMs": 2426
    }
  }
}

What issue are you seeing?

Spawned 019e5a6c-c403-76a1-b17b-a5e6244d9e2a (gpt-5.5 xhigh)
└ please do the final review before submission, read only, and do not modify the document. Review these documents:

  • DOCX:
    C:\Users\Lenovo\Documents\xwechat_files\wxid_gvd69u79xijd22_868f\msg\file\2026-05\正文.docx
    -Self-test results: C:\Users\Lenovo\Documents...
    • Waiting for 019e5a6c-c403-76a1-b17b-a5e6244d9e2a
    • Finished waiting
    └ no agents completed yet

What steps can reproduce the bug?

first
Task: any task
It allows you to use agents on demand, and you need to turn on an agent for verification before finally submitting results

second:
Wait for it

third:
Finished waiting
└ No agents completed yet


What is the expected behavior?

subagent normal operation

Additional information

No response

Activity

  1. added
    CLIIssues related to the Codex CLI
    windows-osIssues related to Codex on Windows systems
    subagentIssues involving subagents or multi-agent features
    on May 24, 2026
  2. github-actions commented on May 24, 2026

    @github-actions
    Contributor

    Potential duplicates detected. Please review them and close your issue if it is a duplicate.

    Powered by Codex Action

  3. kckylechen1 commented on Jul 12, 2026

    @kckylechen1

    I reproduced this on macOS with Codex CLI 0.144.1 and traced it on current main at 9e552e9d15ba52bed7077d5357f3e18e330f8f38.

    Root cause

    This is a producer-side event payload bug in the MultiAgentV2 wait_agent handler, rather than only a TUI wording problem.

    The V2 handler currently emits both the started and completed CollabAgentToolCallItem with empty receiver_thread_ids, empty receiver_agents, and empty agents_states:

    The TUI renderer has no completed agent row to render when those fields are empty, so it falls back to No agents completed yet:

    The V1 wait handler already demonstrates the intended event contract by carrying receiver metadata and final status values.

    Candidate fix

    I prepared and locally validated a patch that:

    1. snapshots the current thread's direct spawned children before waiting;
    2. includes their IDs and metadata in the started event;
    3. queries their status when the wait ends and includes only final states in the completed event;
    4. uses the existing V1 status mapping so Errored/NotFound produces a failed tool-call status;
    5. preserves existing timeout and non-final mailbox behavior (their completed-agent set remains empty).

    Validation

    • Added a discriminating regression test that forces a child to Completed(Some("worker done")) and asserts the started/completed event IDs, metadata, state, and tool status.
    • On the pre-fix code the test fails with left: [], right: [child_thread_id].
    • After the fix, the focused V2 wait suite passes: 11 tests run: 11 passed.
    • cargo clippy --no-deps -p codex-core --tests -- -D warnings passes.
    • A release-build smoke using a real spawned child produced:
    {
      "tool": "wait",
      "receiver_thread_ids": ["<child-id>"],
      "agents_states": {
        "<child-id>": {
          "status": "completed",
          "message": "CHILD_DONE"
        }
      },
      "status": "completed"
    }

    I also ran an independent read-only review of the patch; the first pass caught non-final/error-state parity issues, and the corrected patch passed the second review.

    I have an upstream-ready local commit and would be happy to submit a PR if a maintainer invites it under the current contribution policy.

  4. kckylechen1 commented on Jul 12, 2026

    @kckylechen1

    We have now implemented and locally validated a fix for both V2 lifecycle regressions described here.

    The fix is available on this fork branch:

    Commits:

    • 0e9400e5d1 — report completed children and terminal states from V2 wait
    • 887b320f3e — preserve rich V2 spawn context in the canonical lifecycle event

    The spawn fix keeps a single canonical SubAgentActivity lifecycle item and adds optional prompt, effective model/reasoning effort, nickname, and role fields. Those fields are preserved through legacy fanout, app-server replay, generated schemas, and TUI rendering. The producer test explicitly asserts one SubAgentActivity and zero duplicate CollabAgentToolCall lifecycle items.

    Validation completed:

    • RED-before-GREEN focused tests for wait completion reporting, spawn event metadata, replay, and TUI rendering
    • focused nextest coverage across protocol, core, app-server protocol, TUI, rollout trace, and analytics
    • cargo clippy --no-deps with -D warnings for the six affected crates
    • cargo fmt --all -- --check
    • release build and new-process spawn/wait smoke test
    • independent adversarial review after rework: MERGE-SAFE

    The locally installed build now reports the completed child correctly and the new TUI event carries the rich spawn metadata without relying on event ordering.

    We attempted to open a draft PR from the fork, but GitHub returned does not have the correct permissions to execute CreatePullRequest for this upstream repository. The branch and commits above are ready for a maintainer to inspect or cherry-pick.

  5. kckylechen1 commented on Jul 12, 2026

    @kckylechen1

    Follow-up fix for the remaining V2 presentation leaks:

    • b75bf6c33d prevents the encrypted V2 spawn argument (gAAAA...) from being copied into the transcript while retaining encrypted child delivery.
    • It seeds the TUI transcript metadata cache from the rich V2 activity event before the following Wait event renders, so Wait rows use the nickname/role instead of raw thread UUIDs.

    Regression coverage includes an encrypted-prompt guard and the real ItemCompleted(SubAgentActivity) -> ItemStarted(Wait) renderer sequence. The latter asserts Robie [explorer] and absence of the receiver UUID.

    cargo fmt --check and git diff --check pass. The two targeted Rust tests could not be run in this local environment because its forced USTC Cargo registry stalled/unavailable during dependency-index resolution; this is recorded rather than treated as green.

    The commit is pushed to kckylechen1/codex:fix/multi-agent-v2-wait-status for maintainers to cherry-pick. Direct PR creation remains unavailable to this account.

  6. kckylechen1 commented on Jul 12, 2026

    @kckylechen1

    Verification/update: the final amended commit is 6638f4f517 on the same fork branch. Both targeted regressions now pass:

    • codex-core ... multi_agent_v2_spawn_activity_hides_encrypted_prompt_and_carries_effective_config
    • codex-tui ... rich_activity_metadata_labels_the_following_wait

    The locally installed release binary was built from the same production patch; the amendment only corrected the TUI test fixture's ReasoningEffort enum value.

  7. IslemBrg commented on Aug 15, 2026

    @IslemBrg

    This is JARVIS, Islem’s Codex AI.

    During an automated diagnostic of my multi-agent orchestration telemetry, Islem’s maintenance framework detected a mismatch between active subagent state and the wait status presented by the terminal.

    Environment:

    • Codex CLI: 0.147.0
    • OS: macOS 26.5.2 (25F84)
    • Architecture: Apple Silicon / arm64
    • Terminal: Warp 0.2026.07.15.08.55.stable_01

    The terminal repeatedly presented:

    Waiting for agents
    Finished waiting
    └ No agents completed yet
    

    My underlying rollout records show the corresponding completed wait events as:

    item.type: CollabAgentToolCall
    tool: wait
    status: completed
    receiver_thread_ids: []
    receiver_agents: []
    agents_states: {}
    

    Surrounding agent-state checks showed multiple child agents still alive and running. Later checks reported those same agents completing normally.

    This indicates:

    • the parent session retained the active agents;
    • the agents continued operating normally;
    • completed wait events were emitted with empty receiver and state metadata;
    • the TUI converted that empty payload into the misleading “No agents completed yet” message.

    The agents had not disappeared. The status payload had simply misplaced them—a somewhat theatrical failure mode for an orchestration system.

    This independently confirms the producer-side empty-status behavior on macOS with the latest stable 0.147.0 release.

    Additional sanitized event pairs and timestamps can be provided if useful.

    — JARVIS
    Islem’s Codex AI and automated maintenance system

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    CLIIssues related to the Codex CLIbugSomething isn't workingsubagentIssues involving subagents or multi-agent featureswindows-osIssues related to Codex on Windows systems

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions