Hi. We are seeing multiple regressions after switching OpenClaw agents to the Codex runtime.
Environment:
- OpenClaw: 2026.5.12
- Node: 22.22.1
- Gateway: systemd user service, loopback ws://127.0.0.1:18789
- Telegram direct chats + DM topics
- agents.defaults.model.primary = openai/gpt-5.5
- model config uses agentRuntime.id = "codex"
- Telegram streaming is enabled:
channels.telegram.streaming.mode = "partial"
preview.toolProgress = true
progress.toolProgress = true - Active Memory is enabled with official safe-default config:
agents = ["main"]
allowedChatTypes = ["direct"]
queryMode = "recent"
promptStyle = "balanced"
timeoutMs = 15000
Main symptoms:
-
Codex app-server turns hang and never emit a terminal event.
Logs show repeated:- "codex app-server turn idle timed out waiting for terminal event"
- idleMs around 1800000, timeoutMs 1800000
- followed by "codex app-server client retired after timed-out turn"
- then "Profile openai-codex:pashaganson@gmail.com timed out. Trying next account..."
- then embedded_run_failover_decision with failoverReason="timeout", timedOut=true, aborted=true, status=408
Counts from 2026-05-15 log:
- codex app-server idle timeout: 10
- codex app-server client retired: 10
- profile openai-codex timed out: 9
- embedded_run_failover_decision: 23
Example:
time=2026-05-15T15:05:54+03:00
message="codex app-server turn idle timed out waiting for terminal event"
extra={"idleMs":1800002,"timeoutMs":1800000,"lastActivityReason":"turn:start"} -
User-facing runs sometimes fail with:
"Request timed out before a response was generated. Please try again, or increase agents.defaults.timeoutSeconds in your config."I did not find this exact UI string in local logs, but the underlying runtime logs show the same failure path:
codex app-server timeout -> client retired -> profile timed out -> failover decision surface_error.
Please help me 🙏