You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After upgrading from 2026.4.23 to 2026.4.24 (commit cbcfdf6) via npm i -g openclaw (manual-update), the gateway entered a tight crash loop with an unhandled promise rejection from the bonjour mDNS advertiser. Crashes occurred roughly every ~16 seconds. Downgrading to 2026.4.23 (commit a979721) immediately restored stability.
Environment
OpenClaw version: 2026.4.24 (commit cbcfdf6)
Last known good: 2026.4.23 (commit a979721)
macOS Darwin 25.3.0, Apple Silicon Mac mini (arm64)
Node.js v24.14.0
Install: npm i -g openclaw
Symptom (~/.openclaw/logs/gateway.err.log)
Repeating every ~16 seconds, with the "stuck in announcing" duration consistently in the 8000–8300 ms range:
13+ stability bundles dropped in ~4 minutes before I downgraded. Each one matched the same unhandled_rejection shape.
Root-cause hypothesis
The bonjour watchdog forcibly restarts the CIAO advertiser when the service stays in announcing state past ~8000 ms. CIAO appears to surface that cancellation as a rejected promise that no code is awaiting; the rejection escapes as unhandled and brings the gateway down. Launchd restarts the gateway and the loop repeats.
Two angles worth checking:
The CIAO advertiser cancel path needs .catch() (or to be awaited inside a try/catch) so cancellation cannot escape as an unhandled rejection.
The ~8000ms "stuck in announcing" watchdog threshold may be too tight for the Bonjour state machine on macOS Sequoia / arm64 — every cycle hit it. v23 emits the same watchdog detected non-announced service warning but does not throw, so the trigger condition existed before; what changed in v24 is that the cancellation now leaks.
(events array was empty in the bundle — no captured trace beyond the reason. Happy to attach raw bundles if useful.)
Impact
Gateway unavailable; the entire stack depending on it (in my case an email bridge driving an agent on every inbound mail) is down until manual intervention.
Workaround
npm i -g openclaw@2026.4.23
openclaw doctor --fix
Stack returns to stable in seconds. Note that v24 added plugins.entries.feishu and plugins.entries.whatsapp which require >=2026.4.24; doctor --fix cleans those out of openclaw.json so v23 can boot cleanly.
Asks
Catch the CIAO cancellation rejection at the source (or change the watchdog to await its own cancel call so it can swallow the reject).
Consider raising the watchdog threshold or backing off when the Bonjour state machine is consistently hitting the ceiling on a given platform — the warning was already firing on v23 every few minutes; a watchdog that fires that often probably indicates the threshold is wrong for the host.
Summary
After upgrading from
2026.4.23to2026.4.24(commitcbcfdf6) vianpm i -g openclaw(manual-update), the gateway entered a tight crash loop with an unhandled promise rejection from the bonjour mDNS advertiser. Crashes occurred roughly every ~16 seconds. Downgrading to2026.4.23(commita979721) immediately restored stability.Environment
2026.4.24(commitcbcfdf6)2026.4.23(commita979721)arm64)v24.14.0npm i -g openclawSymptom (
~/.openclaw/logs/gateway.err.log)Repeating every ~16 seconds, with the "stuck in announcing" duration consistently in the 8000–8300 ms range:
13+ stability bundles dropped in ~4 minutes before I downgraded. Each one matched the same
unhandled_rejectionshape.Root-cause hypothesis
The bonjour watchdog forcibly restarts the CIAO advertiser when the service stays in
announcingstate past ~8000 ms. CIAO appears to surface that cancellation as a rejected promise that no code is awaiting; the rejection escapes asunhandledand brings the gateway down. Launchd restarts the gateway and the loop repeats.Two angles worth checking:
.catch()(or to be awaited inside atry/catch) so cancellation cannot escape as an unhandled rejection.~8000ms"stuck in announcing" watchdog threshold may be too tight for the Bonjour state machine on macOS Sequoia / arm64 — every cycle hit it. v23 emits the samewatchdog detected non-announced servicewarning but does not throw, so the trigger condition existed before; what changed in v24 is that the cancellation now leaks.Stability bundle excerpt
{ "version": 1, "reason": "unhandled_rejection", "process": { "pid": 13305, "platform": "darwin", "arch": "arm64", "node": "24.14.0", "uptimeMs": 16523 } }(
eventsarray was empty in the bundle — no captured trace beyond the reason. Happy to attach raw bundles if useful.)Impact
Gateway unavailable; the entire stack depending on it (in my case an email bridge driving an agent on every inbound mail) is down until manual intervention.
Workaround
Stack returns to stable in seconds. Note that v24 added
plugins.entries.feishuandplugins.entries.whatsappwhich require>=2026.4.24;doctor --fixcleans those out ofopenclaw.jsonso v23 can boot cleanly.Asks