Skip to content

Bonjour mDNS crashes Gateway on VPS/cloud with unhandled promise rejection (CIAO PROBING CANCELLED) #70232

Description

@leeoxi82

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

  1. Install OpenClaw 2026.4.21 on a VPS/cloud instance
  2. Run openclaw gateway run --port 18789
  3. Wait 50-70 seconds after startup
  4. Gateway receives SIGTERM and shuts down
  5. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    dedupe:childDuplicate issue/PR child in dedupe clusterduplicateThis issue or pull request already exists

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions