Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
The live runtime-parity scenario rejects the gateway's canonical structured restart/abort terminal outcomes because it only recognizes legacy error-message substrings.
Steps to reproduce
- At
7b03a2ae201ab9c27dc3bc39569e97c9f9582360, run gateway-restart-inflight-run in the live-frontier OpenClaw/Codex runtime-pair lane.
- Let the scenario start an agent run and apply its restart-required gateway config change.
- Observe
agent.wait return status: error with stopReason: restart or stopReason: aborted.
- Observe the scenario fail its interruption-status assertion even when the gateway recovers and the delivery-deduplication markers remain correct.
Expected behavior
The scenario accepts only the canonical structured restart-owned outcomes, while continuing to fail arbitrary errors and duplicate or missing recovery delivery.
Actual behavior
The assertion accepts ok, timeout, or three legacy error strings, but not the structured restart and aborted stop reasons emitted by current runtime normalization.
OpenClaw version
7b03a2ae201ab9c27dc3bc39569e97c9f9582360
Operating system
Ubuntu on Blacksmith Testbox
Install method
Repository checkout with pnpm
Model
openai/gpt-5.5 and openai/gpt-5.4
Provider / routing chain
QA live-frontier runtime pair: OpenClaw and Codex app-server
Additional provider/model setup details
Fast mode, concurrency 1, standard plus live-only runtime parity tiers.
Logs
OpenClaw terminal result: status=error, stopReason=restart
Codex terminal result: status=error, stopReason=aborted, error=agent run aborted
Screenshots, recordings, and evidence
Source contracts: src/gateway/server-close.ts, src/agents/agent-run-terminal-outcome.ts, and src/agents/run-wait.ts intentionally preserve these structured stop reasons. The recovery and deduplication marker assertions still run after the status check.
Impact and severity
Affected: release runtime-parity validation.
Severity: release-blocking false negative.
Frequency: deterministic when the interrupted run returns the current structured outcome.
Consequence: the release gate reports a runtime failure even though restart recovery and delivery deduplication satisfy their product contracts.
Additional information
The bounded fix should accept only status: error paired with exact stopReason: restart or stopReason: aborted, retaining legacy upgrade-path strings and all recovery-marker assertions.
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
The live runtime-parity scenario rejects the gateway's canonical structured restart/abort terminal outcomes because it only recognizes legacy error-message substrings.
Steps to reproduce
7b03a2ae201ab9c27dc3bc39569e97c9f9582360, rungateway-restart-inflight-runin the live-frontier OpenClaw/Codex runtime-pair lane.agent.waitreturnstatus: errorwithstopReason: restartorstopReason: aborted.Expected behavior
The scenario accepts only the canonical structured restart-owned outcomes, while continuing to fail arbitrary errors and duplicate or missing recovery delivery.
Actual behavior
The assertion accepts
ok,timeout, or three legacy error strings, but not the structuredrestartandabortedstop reasons emitted by current runtime normalization.OpenClaw version
7b03a2ae201ab9c27dc3bc39569e97c9f9582360Operating system
Ubuntu on Blacksmith Testbox
Install method
Repository checkout with pnpm
Model
openai/gpt-5.5andopenai/gpt-5.4Provider / routing chain
QA live-frontier runtime pair: OpenClaw and Codex app-server
Additional provider/model setup details
Fast mode, concurrency 1, standard plus live-only runtime parity tiers.
Logs
Screenshots, recordings, and evidence
Source contracts:
src/gateway/server-close.ts,src/agents/agent-run-terminal-outcome.ts, andsrc/agents/run-wait.tsintentionally preserve these structured stop reasons. The recovery and deduplication marker assertions still run after the status check.Impact and severity
Affected: release runtime-parity validation.
Severity: release-blocking false negative.
Frequency: deterministic when the interrupted run returns the current structured outcome.
Consequence: the release gate reports a runtime failure even though restart recovery and delivery deduplication satisfy their product contracts.
Additional information
The bounded fix should accept only
status: errorpaired with exactstopReason: restartorstopReason: aborted, retaining legacy upgrade-path strings and all recovery-marker assertions.