Repository navigation
fix: identify local worker timeouts in channel replies - #155675
Conversation
Fixes openclaw#155627 Signed-off-by: GokayAI <[email protected]>
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed September 23, 2026, 12:10 AM ET / 04:10 UTC (Revision 4). ClawSweeper reviewWhat this changesThe PR makes channel failure replies identify typed local worker timeouts while preserving provider HTTP error wording, and adds regression coverage. Merge readiness✅ Ready for maintainer review This remains a useful, focused correction absent from current main and the latest release. No blocking correctness or security finding was identified, and the supplied production-path evidence supports the changed reply behavior. Priority: P2 Review scores
Verification
How this fits togetherOpenClaw’s shared channel reply formatter turns agent-run errors into user-facing messages. It receives preserved error causes and classified failure facts, then supplies reply text to channel delivery. flowchart TD
A[Agent run fails] --> B[Preserved error causes]
B --> C[Shared channel reply formatter]
C --> D{Typed local timeout without original HTTP status?}
D -->|Yes| E[Local worker timeout message]
D -->|No| F[Existing failure guidance]
E --> G[Channel delivery]
F --> G
Before mergeNone. Agent review detailsSecurityNone. PR surfaceSource +30, Tests +49. Total +79 across 2 files. View PR surface stats
Review metrics
Technical reviewBest possible solution: Keep origin-aware wording in the existing reply formatter while retaining diagnostic classification and tracking the underlying context slowdown separately. Do we have a high-confidence way to reproduce the issue? Yes: current source preserves a typed worker timeout while synthesizing status 408, then renders provider-attributed channel copy. The supplied Gateway run corroborates that path; this review did not execute a current-main reproduction. Is this the best way to solve the issue? Yes: the patch corrects presentation at its existing owner without changing timeout budgets, fallback policy, public APIs, or stored state. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against de32d6b7a12e. LabelsLabel changes: No label changes. Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (3 earlier review cycles) |
Security-sensitive guard clearedCurrent revision: This PR no longer changes files in the maintainer security-review tier. Separate CODEOWNERS requirements still apply to security policy and enforcement files. |
|
/allow-security-sensitive-change |
|
Landed in d7b8c98. Typed local worker timeouts now get local-timeout guidance in external channel replies, while genuine HTTP 408 errors retain provider attribution. The refreshed head passed all 21 focused failure-reply tests, required CI, and hosted review. Retained isolated Gateway/channel proof covers real worker timeout delivery and the HTTP 408 control; this does not fix the underlying slowdown. Thanks @gokay-ai for the contribution! |
Related: #155627
What Problem This Solves
Fixes: external channel replies blame the selected model provider for HTTP 408 when a typed local worker timeout caused the failure without an HTTP request.
User Impact
User impact: the warning identifies a local worker task timeout instead of an upstream HTTP failure. Genuine provider HTTP 408 warnings retain their attribution. This does not fix the underlying worker timeout or the reported 60-second context-preparation slowdown.
Why This Change Was Made
The existing reply-copy owner now checks the preserved typed worker cause, while original HTTP status facts take precedence. It does not infer local origin from matching message text or reclassify other worker error codes.
This is a user-facing copy correction only: the documented HTTP-like diagnostic status mapping, fallback and retry behavior, raw error causes, and earlier authentication, CLI, storage, and heartbeat handling remain unchanged. It adds no configuration, error metadata, or public API.
Evidence
42d6891d16aa59a23c17d9065030879ca5c9efaa, the recipient received one reply:A local worker task timed out. Please try again.The original typed error and diagnostic classification were retained.