-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
[Bug]: Codex native tool statuses surface expected checks as channel-visible OpenClaw failures #88332
Copy link
Copy link
Open
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.impact:securitySecurity boundary, credential, authz, sandbox, or sensitive-data risk.Security boundary, credential, authz, sandbox, or sensitive-data risk.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Description
Metadata
Metadata
Assignees
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.impact:securitySecurity boundary, credential, authz, sandbox, or sensitive-data risk.Security boundary, credential, authz, sandbox, or sensitive-data risk.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Priority
None yet
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
Codex-native command/read/search status projection can turn expected negative checks and internal probe failures into channel-visible OpenClaw
failedmessages. The visible reports are channel-specific, but the likely ownership boundary is the Codex/OpenClaw integration path that converts native Codex item status intolastToolErrorand then into user-facing warning payloads.Steps to reproduce
Evidence-backed paths:
2026.5.20with the Codex runtime through Telegram.grepexits1because no rows matched.⚠️ ... failedbanner even though the no-match result was the expected negative check.⚠️ ... print lines ... failedmessage.Current-source path to inspect:
extensions/codex/src/app-server/event-projector.ts:1058maps non-success Codex-native result status toisError.extensions/codex/src/app-server/event-projector.ts:1098records that native failure aslastNativeToolError.extensions/codex/src/app-server/event-projector.ts:1985treats every nativecommandExecutionas a mutating tool item.src/agents/embedded-agent-runner/run/payloads.ts:517formatslastToolErroras a channel-visible⚠️ ... failedwarning.Expected behavior
The Codex/OpenClaw integration should distinguish real user-action failures from expected negative checks and internal agent probes before producing channel-visible failure warnings.
Expected-negative checks such as search-no-match should be allowed to produce a normal result without an alarming failure banner. Internal agent probes that miss optional workspace files should remain internal diagnostics unless the assistant deliberately reports them or the failure blocks the requested user action.
This should be channel-agnostic. Telegram and Discord may need output-suppression safeguards, but they should not be the primary owners of Codex-native tool status semantics.
Actual behavior
Prior reports show channel-visible
⚠️ ... failedmessages for Codex-backed operations that are not necessarily user-action failures:grepexit1means no matches.print lines ... failedmessages for missing internal read targets in a Codex-backed workflow. Fix heartbeat message-tool delivery policy #85357 fixed the specific Discord heartbeat delivery-policy gap, but the report still shows the same Codex-native failure shape.Current source suggests the shared path is Codex-native event projection plus OpenClaw warning payload construction, not Telegram alone.
OpenClaw version
Observed reports:
2026.5.19,2026.5.20, and adjacent Telegram internal-message evidence on2026.5.26. Current source reviewed onmainatb13fb788b53on 2026-05-30.Operating system
Observed reports include macOS and Ubuntu. The suspected source path is OS-independent.
Install method
Observed reports include npm global and source checkout.
Model
openai/gpt-5.5/gpt-5.5with the Codex runtime.Provider / routing chain
OpenClaw ->
@openclaw/codex-> external channel delivery, including Telegram and Discord reports.Additional provider/model setup details
This issue intentionally reframes the visible channel reports as a shared Codex/OpenClaw integration problem. The channel issues should remain useful repro anchors, but the product decision should likely happen at the native tool-status boundary:
lastToolError?src/agents/embedded-agent-runner/run/payloads.tsadd a fallback⚠️ ... failedwarning?src/agents/sessions/tools/grep.ts:353treats no matches as a successfulNo matches foundresult andsrc/agents/bash-tools.exec-runtime.ts:546treats normal non-shell nonzero exits as completed with an exit-code note?Logs, screenshots, and evidence
Related issues:
⚠️ ... failedfor normalgrepexit1after upgrade to2026.5.20.2026.5.19and2026.5.20; fixed for the Discord heartbeat delivery-policy path by Fix heartbeat message-tool delivery policy #85357.Current source refs:
extensions/codex/src/app-server/event-projector.ts:1058extensions/codex/src/app-server/event-projector.ts:1098extensions/codex/src/app-server/event-projector.ts:1985src/agents/embedded-agent-runner/run/payloads.ts:517src/agents/sessions/tools/grep.ts:353src/agents/bash-tools.exec-runtime.ts:546Impact and severity
Affected: users on external messaging channels when the Codex runtime produces native tool statuses that OpenClaw turns into visible warnings.
Severity: Medium UX regression, with possible information-exposure risk when internal file/probe details are shown in shared channels.
Frequency: Reproducible for the grep/no-match shape in #87610; observed across multiple missing-read examples in #85310.
Consequence: Users see false or overly alarming failure messages, routine negative checks look broken, and internal agent activity can leak into chat surfaces.
Additional information
This should not be solved as a grep-string special case or a Telegram-only sanitizer. The likely durable fix is a small, explicit Codex-native status mapping policy plus fallback-warning policy tests, with channel tests only proving that external delivery no longer leaks the misclassified internal/expected outcomes.