Skip to content

[Bug]: Control UI does not render final assistant event for Codex-provider runs (page refresh required to see reply) — separate from #67422 #71183

@agentmercuryproject-dot

Description

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

Control UI webchat does not deliver final assistant events for Codex-provider runs — response appears only after page refresh. Claude-provider runs stream correctly in the same session. Likely related to #67422 but persists on 2026.4.22 and is provider-specific.

Steps to reproduce

  1. Open Control UI at http://127.0.0.1:18789/ → main session.
  2. Select a Codex-provider model (tested: codex/gpt-5.5, codex/gpt-5.4, codex/gpt-5.4-mini, codex/gpt-5.2).
  3. Send any message (e.g. "hello").
  4. Observe: response never appears in the open window. Status / loading indicator stays or hangs.
  5. Open a new browser window / refresh the current window → the assistant's reply is there in the transcript, as if it had been delivered normally.
  6. Switch the same session to an Anthropic model (claude-opus-4-7 or claude-sonnet-4-6), send a message → response streams in live as expected.

Expected behavior

Final assistant message should render in real time in the open Control UI window for all providers, including Codex.

Actual behavior

  • Response is generated and persisted successfully server-side (chat.history returns it on reload; same message is also delivered to Telegram in real time via the same gateway).
  • The Control UI WebSocket apparently does not receive / does not render the terminal event for Codex runs.
  • User must refresh / open a new window to see the reply.
  • Reproduces on main session (not only "Other Sessions" as in [Bug]: Webchat messages in new sessions don't stream back in real-time; page refresh required to see replies #67422) and has persisted since at least the gpt-5.4 era (weeks/months before gpt-5.5 release).

OpenClaw version

2026.4.22

Operating system

macOS Darwin 25.4.0 (arm64)

Install method

npm install -g ocplatform / Homebrew node@22

Model

codex/gpt-5.5 (also repros on codex/gpt-5.4, codex/gpt-5.4-mini, codex/gpt-5.2)

Provider / routing chain

codex (local Codex CLI binary at /opt/homebrew/bin/codex, Codex CLI v0.124.0, ChatGPT auth). Gateway runs as ai.openclaw.gateway launchd service on loopback 127.0.0.1:18789.

Additional provider/model setup details

  • Main agent default_model: codex/gpt-5.5
  • Anthropic direct provider also configured (claude-opus-4-7 as main, claude-sonnet-4-6 for hb_signal).
  • In the same Control UI session, swapping between a Codex model and a Claude model reproduces / does not reproduce the bug respectively. That rules out session state / gateway health / transport layer — this is provider-specific in the finalization path.

Logs, screenshots, and evidence

Gateway log around a repro (10:14:14 PDT 2026-04-24):

[agent] run 7f35305e-... ended with stopReason=stop
model.run via local
provider: codex
model: gpt-5.5
outputs: 1
pong-5.5

The run completes successfully server-side; the UI never renders it until reload.

Impact and severity

Medium. Does not lose data (server-side is fine), but makes the Control UI unusable as a primary surface for Codex-model conversations. Forces users onto alternate channels (Telegram, TUI) for GPT workflows, or requires a browser refresh per message.

Additional information

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    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