OpenClaw

OpenClaw’s crash-loop breaker can permanently suppress healthy channels

An OpenClaw operator reports that five startup failures can permanently suppress Discord or WhatsApp even after the underlying fault is fixed. The documented channels.start recovery path then fails with WebSocket 1006, leaving operators to edit state or restart without a supported channel-level reset.

← Back to homeOriginal source ↗

openclaw/openclaw issue #115326 is the inspected primary source: “Crash-loop breaker suppresses Discord/WhatsApp permanently and documented recovery (channels.start) fails with WebSocket 1006.” The two related records below were inspected as supporting context, not treated as independent confirmation.

The facts

- openclaw/openclaw issue #115326 was created 2026-07-28T17:25:52Z and was open at inspection; its title is “Crash-loop breaker suppresses Discord/WhatsApp permanently and documented recovery (channels.start) fails with WebSocket 1006.” - openclaw/openclaw PR #115395 was created 2026-07-28T20:13:58Z and was closed at inspection; its title is “fix(agents): prevent path-only bootstrap files from crashing turns.” - openclaw/openclaw PR #115457 was created 2026-07-29T00:45:23Z and was open at inspection; its title is “fix(ui): prevent leaked dashboard subscriptions on pane lifecycle changes.” - The repository reported 384437 stars, 6473 open issues, default branch main, and last push 2026-07-29T00:55:43Z. - The latest tagged-release baseline checked was v2026.7.2-beta.5 published 2026-07-28T03:23:12Z.

What changed

openclaw/openclaw issue #115326 reports: Bug type Regression (worked before, now fails) Beta release blocker No Summary After previously working normally, the Gateway starts successfully but permanently suppresses Discord and WhatsApp because the crash-loop breaker is active. The documented recovery path (channels.start) fails with GatewayTransportError 1006, leaving all communication channels unavailable. Steps to reproduce 1. Install OpenClaw 2026.7.1-2 on macOS using the global npm installation. 2. Configure Discord and WhatsApp channels. 3. Start the Gateway. 4. After repeated unclean boots, the crash-loop breaker suppresses automatic startup for both channels. 5. Attempt to recover the channels using the documented channels.start recovery mechanism. 6. Observe that the RPC call fails with GatewayTransportError 1006 and the channels remain disabled. Expected behavior The Gateway should either: successfully restart the channels, or allow manual recovery using channels.start without disconnecting the local Gateway RPC. Discord and WhatsApp should become operational again after recovery. Actual behavior The Gateway itself remains running and continues listening on the configured port. Discord and WhatsApp are permanently suppressed by the crash-loop

openclaw/openclaw PR #115395 reports: Summary High Level TLDR Agent bootstrap hooks can add virtual files with path and content but no explicit name. The USER.md budget change in #114819 assumed every file had a name and crashed the turn before the selected runtime or model could start. This derives the display name from the file path before budget analysis, preserving the existing hook contract. AI-assisted: yes. What Problem This Solves Fixes an issue where users sending a normal message would receive no agent response when an enabled bootstrap hook supplied a path-only virtual file. The failure occurred during bootstrap budget accounting, so it affected runtime routes such as Claude CLI before they could launch. Why This Change Was Made Root Cause Bootstrap hooks may replace the bootstrap-file list, and the extension-facing sanitizer intentionally accepts path/content-only entries. #114819 added filename-specific budget handling that called toLowerCase() on every file's name without first normalizing a missing name. A path-only hook entry therefore failed with Cannot read properties of undefined (reading 'toLowerCase') before

openclaw/openclaw PR #115457 reports: Related: #115364 AI-assisted; independently reviewed with the repository's structured autoreview workflow. What Problem This Solves Fixes an issue where opening or replacing a chat pane could start a session dashboard request and Gateway event subscription before that pane had a mounted lifecycle owner. The obsolete provider-creation path left the subscription outside the dashboard lease, and a Gateway that lost dashboard support could incorrectly expose another consumer's cached transport. Why This Change Was Made Complete the session-dashboard ownership refactor from #115364: ordinary board lookup is read-only, and the lifecycle-owned lease is the single production path that creates, connects, shares, and releases a Gateway dashboard transport. Preserve independent per-consumer permissions, cached sidebar availability, mock dashboards, unsupported older Gateways, and shared Workboard consumers. Delete the obsolete eight-argument factory path and the two tests that only protected that retired implementation. User Impact Switching, reconnecting, or unmounting chat and Workboard dashboards no longer leaks hidden Gateway subscriptions or inherits stale dashboard capabilities. Unsupported Gateways continue to show the safe chat-only

Why it matters

A crash-loop circuit breaker should contain repeated failure, not convert a repaired channel into hidden permanent state. Recovery controls must remain reachable through the same degraded conditions they claim to repair. This is an operator boundary: persisted state, execution ownership and visible controls must describe the same event. A workaround that broadens access, deletes state or hides the symptom would trade a visible defect for an unmeasured one.

Current

The primary record was open when captured on 2026-07-29. The release baseline was v2026.7.2-beta.5 published 2026-07-28T03:23:12Z. Current repository metadata, pull requests, issues, release records, Hacker News discovery results and the rendered ClawCharts row were checked. ClawCharts selected the subject; it did not prove the claim.

Evidence

The primary URL is https://github.com/openclaw/openclaw/issues/115326. Supporting records are https://github.com/openclaw/openclaw/pull/115395 and https://github.com/openclaw/openclaw/pull/115457. Their source bodies, timestamps and states were captured in the daily evidence bundle. Test counts, reproductions and deployment observations remain attributed to their authors unless explicitly identified as independently rerun.

Source boundary

Open work is described as open, closed work as closed, and operator reports as reports. A pull request is evidence of proposed or reviewed direction, not proof of a shipped release. Issue closure would not by itself prove a deployed fix. Search residue, package mirrors and historically published source spines were excluded.

Operator take

Treat suppression state as a lease with an observable reset path, and test recovery against a live degraded gateway rather than only clean startup. Preserve a before-state receipt, make the smallest reversible change, and verify the original failure independently after intervention.

Caveat

Public project records are mutable. Status, scope and evidence can change after publication. This brief records the inspected state and does not authorize changes to a reader’s deployment.

Source inspected; source state, environment and release boundary remain explicit.