Bug Summary
OpenClaw Gateway v2026.4.21 crashes with Unhandled promise rejection: CIAO PROBING CANCELLED when running on VPS/cloud servers where mDNS multicast is not supported. Under systemd management with Restart=always, this triggers an infinite restart loop.
Environment
- OpenClaw: 2026.4.21 (f788c88)
- Node.js: v22.22.1
- OS: Ubuntu 24.04 LTS
- Host: RackNerd VPS (x86_64)
Reproduction Steps
- Install OpenClaw 2026.4.21 on a VPS/cloud instance
- Run
openclaw gateway run --port 18789
- Wait 50-70 seconds after startup
- Gateway receives SIGTERM and shuts down
- Under systemd with
Restart=always, infinite restart loop
Error Log Pattern
[openclaw] Unhandled promise rejection: CIAO PROBING CANCELLED
Preceded by:
{"subsystem":"bonjour"} watchdog detected non-announced service; attempting re-advertise
Impact Stats (Today)
- 36 CIAO PROBING CANCELLED errors
- 51 systemd restart attempts
- Average time between crashes: ~90 seconds
Attempted Fixes (That Did Not Work)
1. OPENCLAW_DISABLE_BONJOUR=1
Set in systemd service Environment. Not recognized by v2026.4.21 -- Bonjour still starts.
2. gateway.mdns.mode: "off"
Written to openclaw.json. Config appears ignored or overwritten on startup -- not effective.
Current Workaround
Run Gateway in tmux instead of systemd. tmux does not treat unhandled promise rejections as fatal process exits, so Gateway continues running despite the Bonjour error.
Root Cause
OpenClaw uses @homebridge/ciao v1.3.6 for mDNS service advertisement. On VPS/cloud networks, mDNS multicast (UDP port 5353) is blocked/filtered. When CIAO probing is cancelled due to network timeout, it throws an unhandled promise rejection which causes the Node.js process to exit.
Suggested Fixes
Option A - Graceful handling: Catch the CIAO PROBING CANCELLED promise rejection and log a warning instead of crashing.
Option B - Environment variable: Make OPENCLAW_DISABLE_BONJOUR=1 actually skip Bonjour initialization.
Option C - Auto-detection: Probe if UDP 5353 multicast works before starting Bonjour. Skip if unavailable.
Option D - Config respect: Ensure gateway.mdns.mode: "off" is actually respected and disables mDNS.
Request
Please fix the unhandled promise rejection from @homebridge/ciao so that Gateway does not crash on VPS/cloud environments where mDNS is unavailable.
Bug Summary
OpenClaw Gateway v2026.4.21 crashes with
Unhandled promise rejection: CIAO PROBING CANCELLEDwhen running on VPS/cloud servers where mDNS multicast is not supported. Under systemd management withRestart=always, this triggers an infinite restart loop.Environment
Reproduction Steps
openclaw gateway run --port 18789Restart=always, infinite restart loopError Log Pattern
Preceded by:
Impact Stats (Today)
Attempted Fixes (That Did Not Work)
1. OPENCLAW_DISABLE_BONJOUR=1
Set in systemd service Environment. Not recognized by v2026.4.21 -- Bonjour still starts.
2. gateway.mdns.mode: "off"
Written to openclaw.json. Config appears ignored or overwritten on startup -- not effective.
Current Workaround
Run Gateway in tmux instead of systemd. tmux does not treat unhandled promise rejections as fatal process exits, so Gateway continues running despite the Bonjour error.
Root Cause
OpenClaw uses
@homebridge/ciaov1.3.6 for mDNS service advertisement. On VPS/cloud networks, mDNS multicast (UDP port 5353) is blocked/filtered. When CIAO probing is cancelled due to network timeout, it throws an unhandled promise rejection which causes the Node.js process to exit.Suggested Fixes
Option A - Graceful handling: Catch the
CIAO PROBING CANCELLEDpromise rejection and log a warning instead of crashing.Option B - Environment variable: Make
OPENCLAW_DISABLE_BONJOUR=1actually skip Bonjour initialization.Option C - Auto-detection: Probe if UDP 5353 multicast works before starting Bonjour. Skip if unavailable.
Option D - Config respect: Ensure
gateway.mdns.mode: "off"is actually respected and disables mDNS.Request
Please fix the unhandled promise rejection from
@homebridge/ciaoso that Gateway does not crash on VPS/cloud environments where mDNS is unavailable.