openclaw - 💡(How to fix) Fix [Bug]: Bonjour/mDNS plugin hardcoded to 'openclaw.local' causes crash loop [2 comments, 3 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#72355Fetched 2026-04-27 05:31:05
View on GitHub
Comments
2
Participants
3
Timeline
7
Reactions
2
Timeline (top)
commented ×2labeled ×2subscribed ×2cross-referenced ×1

The Bonjour plugin hardcodes the mDNS hostname to openclaw.local instead of using the system hostname, causing CIAO library "PROBING CANCELED" errors and gateway crash loops.

Root Cause

The Bonjour plugin hardcodes the mDNS hostname to openclaw.local instead of using the system hostname, causing CIAO library "PROBING CANCELED" errors and gateway crash loops.

Fix Action

Fix / Workaround

  • Last known good: NOT_ENOUGH_INFO (may have worked before CIAO library integration)
  • First known bad: 2026.4.24
  • Temporary workaround: Disable mDNS in ~/.openclaw/openclaw.json:
      "discovery": {
        "mdns": {
          "mode": "off"
        }
      }
  • Suggested fix: Change Bonjour plugin to use os.hostname() or add discovery.mdns.hostname config option

Code Example

[plugins] bonjour: watchdog detected non-announced service; attempting re-advertise
  (gateway fqdn=Lobster (OpenClaw)._openclaw-gw._tcp.loc al.
   host=openclaw.local.
   port=18789
   state=probing)

  Unhandled promise rejection: CIAO PROBING CANCELED

---

# Gateway crash loop pattern (repeats every ~45 seconds):
Apr 26 12:05:53 Lobster node[6484]: [plugins] bonjour: watchdog detected non-announced service; attempting re-advertise (host=openclaw.local. state=probing)
Apr 26 12:06:28 Lobster node[6484]: [plugins] bonjour: restarting advertiser (service stuck in probing for 34568ms)
Apr 26 12:06:28 Lobster node[6484]: [openclaw] Unhandled promise rejection: CIAO PROBING CANCELLED
Apr 26 12:06:28 Lobster node[6484]: [openclaw] wrote stability bundle: /home/lobster/.openclaw/logs/stability/openclaw-stability-2026-04-26T16-06-28-257Z-6484-unhandled_rejection.json

# System hostname verification:
$ hostnamectl --static
Lobster

$ avahi-resolve-host-name lobster.local
Lobster.local   2605:a601:9ba9:910:1efd:5af0:ba8c:c156

---

"discovery": {
      "mdns": {
        "mode": "off"
      }
    }
RAW_BUFFERClick to expand / collapse

Bug type

Crash (process/app exits or hangs)

Beta release blocker

No

Summary

The Bonjour plugin hardcodes the mDNS hostname to openclaw.local instead of using the system hostname, causing CIAO library "PROBING CANCELED" errors and gateway crash loops.

Steps to reproduce

  1. Install OpenClaw 2026.4.24 on a system with hostname other than openclaw
  2. Ensure discovery.mdns.mode is not explicitly set to off (default enables Bonjour)
  3. Start the OpenClaw gateway
  4. Observe gateway logs for Bonjour probing errors and automatic restarts

Expected behavior

The Bonjour plugin should use the system hostname (Lobster.local) or allow configuration via discovery.mdns.hostname, enabling successful mDNS service announcement without conflicts.

Actual behavior

Gateway enters crash loop with repeated restarts every ~45 seconds. Logs show:

  [plugins] bonjour: watchdog detected non-announced service; attempting re-advertise
  (gateway fqdn=Lobster (OpenClaw)._openclaw-gw._tcp.loc al.
   host=openclaw.local.
   port=18789
   state=probing)

  Unhandled promise rejection: CIAO PROBING CANCELED

System hostname is Lobster, but Bonjour advertises openclaw.local, causing mDNS name collision.

OpenClaw version

2026.4.24

Operating system

Debian GNU/Linux 13 (trixie)

Install method

npm global

Model

fireworks/accounts/fireworks/routers/kimi-k2p5-turbo

Provider / routing chain

openclaw -> fireworks

Additional provider/model setup details

NOT_ENOUGH_INFO

Logs, screenshots, and evidence

# Gateway crash loop pattern (repeats every ~45 seconds):
Apr 26 12:05:53 Lobster node[6484]: [plugins] bonjour: watchdog detected non-announced service; attempting re-advertise (host=openclaw.local. state=probing)
Apr 26 12:06:28 Lobster node[6484]: [plugins] bonjour: restarting advertiser (service stuck in probing for 34568ms)
Apr 26 12:06:28 Lobster node[6484]: [openclaw] Unhandled promise rejection: CIAO PROBING CANCELLED
Apr 26 12:06:28 Lobster node[6484]: [openclaw] wrote stability bundle: /home/lobster/.openclaw/logs/stability/openclaw-stability-2026-04-26T16-06-28-257Z-6484-unhandled_rejection.json

# System hostname verification:
$ hostnamectl --static
Lobster

$ avahi-resolve-host-name lobster.local
Lobster.local   2605:a601:9ba9:910:1efd:5af0:ba8c:c156

Impact and severity

  • Affected: All users with non-openclaw hostnames who rely on mDNS discovery
  • Severity: High (blocks mDNS functionality, causes gateway instability)
  • Frequency: Always when mDNS is enabled and hostname differs
  • Consequence: Must disable mDNS entirely; loses automatic LAN discovery

Additional information

  • Last known good: NOT_ENOUGH_INFO (may have worked before CIAO library integration)
  • First known bad: 2026.4.24
  • Temporary workaround: Disable mDNS in ~/.openclaw/openclaw.json:
      "discovery": {
        "mdns": {
          "mode": "off"
        }
      }
  • Suggested fix: Change Bonjour plugin to use os.hostname() or add discovery.mdns.hostname config option

extent analysis

TL;DR

The Bonjour plugin's hardcoded hostname can be overridden by adding a discovery.mdns.hostname configuration option to use the system hostname.

Guidance

  • Verify the system hostname using hostnamectl --static to ensure it matches the expected value.
  • Temporarily disable mDNS in ~/.openclaw/openclaw.json to prevent gateway crash loops.
  • Consider adding a discovery.mdns.hostname configuration option to allow users to specify their system hostname.
  • Review the Bonjour plugin code to determine the best approach for using the system hostname, such as utilizing os.hostname().

Example

No code snippet is provided as the issue does not contain sufficient information about the Bonjour plugin's implementation.

Notes

The suggested fix requires modifying the Bonjour plugin to use the system hostname or adding a configuration option. The temporary workaround involves disabling mDNS, which may not be desirable for all users.

Recommendation

Apply the temporary workaround by disabling mDNS in ~/.openclaw/openclaw.json until a permanent fix is implemented, as it allows users to stabilize their gateway while a more robust solution is developed.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

The Bonjour plugin should use the system hostname (Lobster.local) or allow configuration via discovery.mdns.hostname, enabling successful mDNS service announcement without conflicts.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING