-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
[Bug]: Heartbeat/background failure can surface generic user-request error in Discord #82708
Copy link
Copy link
Closed
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.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-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.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: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.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.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-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.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: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.
Type
Fields
Priority
None yet
Bug type
User-facing error / background task classification
Summary
On OpenClaw
2026.5.12 (f066dd2), a background heartbeat run onmainfailed with a Codex app-server / command-lane timeout and was delivered to Discord with the generic foreground user-request failure text:The failing lane was a heartbeat lane, not a user-initiated Discord request:
From the user perspective this looks like a foreground chat request failed, even when user chat may still be available.
Environment
2026.5.12 (f066dd2)openai/gpt-5.5through OpenAI Codex app-servertimeoutSeconds: 90Private IDs, paths, and auth details are intentionally omitted/redacted.
Observed behavior
A background heartbeat run used the
mainagent/model and timed out. Logs showed the heartbeat lane and embedded failure shape:Discord received the generic user-request failure copy suggesting
/new.Expected behavior
Heartbeat/background failures should be classified and mapped separately from foreground user-request failures.
Reasonable behavior would be one of:
The generic
/newguidance should not be posted for background heartbeat failures unless the affected foreground session is actually unusable.Related issues / PRs
Related but not exact:
Local mitigation
The operator mitigated locally by removing
heartbeat: {}frommain, keeping heartbeat on a lightercron-worker, and keeping heartbeat isolated/light-context/skip-when-busy. That fixes this instance, but the product behavior remains confusing when any background heartbeat failure is delivered as a foreground user-request failure.