Skip to content

Leader footer can stay stuck on child-session MCP startup (for example starting omx_state MCP) #18068

@xiangnan0811

Description

@xiangnan0811

What version of Codex CLI is running?

codex-cli 0.120.0

What subscription do you have?

Redacted for privacy. I can provide it privately if needed.

Which model were you using?

gpt-5.4

What platform is your computer?

Darwin 24.6.0 arm64 arm

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

A macOS terminal emulator inside tmux 3.6a

What issue are you seeing?

The foreground leader footer can keep showing a child-session MCP startup state (for example starting omx_state MCP) for the entire lifetime of background subagent work.

This does not look like raw omx_state startup slowness. I measured omx_state cold-connect locally over stdio at roughly 100-160 ms, which is far shorter than the time the footer can remain in the "starting ... MCP" state.

So the bug appears to be closer to footer status attribution / cleanup for background child sessions than to actual MCP startup duration.

Related but not identical to existing reports such as #16821 and #12976: in my case the key symptom is that the leader footer stays visually stuck on child MCP startup even while child tasks are already running normally.

I am intentionally omitting screenshots, thread IDs, local file paths, usernames, and workspace-specific prompts for privacy.

What steps can reproduce the bug?

  1. Configure a few lightweight stdio MCP servers, including omx_state.
  2. Start a normal interactive Codex CLI leader session.
  3. From that leader session, spawn multiple background child sessions (native subagents; omx team workers can trigger a similar pattern).
  4. Watch the leader footer while the child sessions initialize.
  5. The leader footer can continue to show a child MCP startup indicator such as starting omx_state MCP until all background tasks finish.

Important detail: the background work itself often proceeds normally, so the footer state appears stale or incorrectly attributed rather than accurately representing a still-pending MCP startup.

What is the expected behavior?

  • The leader footer should only show MCP startup state for the foreground leader session itself, or clearly scope any child-session state to the child.
  • Once a child session finishes its MCP handshake/startup, the leader footer should clear that startup indicator promptly.
  • A lightweight MCP such as omx_state should not appear to be starting for the entire duration of unrelated background task execution.

Additional information

A few observations that may help narrow the issue:

  • Child sessions appear to initialize their own MCP managers rather than reusing the leader's live MCP connections.
  • The persistent footer state seems decoupled from the actual cold-connect time of omx_state.
  • This looks like a TUI/session-status scoping problem on top of normal child-session MCP lifecycle behavior.
  • I intentionally redacted any identifiers that could expose local paths, repo names, usernames, or private session metadata.

Metadata

Metadata

Assignees

No one assigned

    Labels

    TUIIssues related to the terminal user interface: text input, menus and dialogs, and terminal displaybugSomething isn't workingmcpIssues related to the use of model context protocol (MCP) serverssubagentIssues involving subagents or multi-agent features

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions