Summary
When the Bonjour/mDNS advertiser fails (stuck in probing/announcing), the gateway tears down the iMessage channel as a side effect. These subsystems should be independent.
Evidence
- Log pattern:
[bonjour] restarting advertiser (service stuck in probing for 17-20s) immediately followed by [imessage] monitor failed: Error: imsg rpc timeout (watch.subscribe) and [imessage] [default] channel exited
- Frequency: 33 occurrences over 4 weeks
- Root cause of Bonjour failure: two gateways on the same LAN advertising
_openclaw-gw._tcp (confirmed via dns-sd -B)
Requested changes
- Decouple Bonjour lifecycle from iMessage channel lifecycle
- Add a
bonjour.enabled config key in openclaw.json (currently only OPENCLAW_DISABLE_BONJOUR env var exists, discovered in server.impl-WjqjRArz.js:9341)
Workaround
OPENCLAW_DISABLE_BONJOUR=1 environment variable disables Bonjour entirely. Gateway is accessed via loopback; discovery is not needed.
Summary
When the Bonjour/mDNS advertiser fails (stuck in probing/announcing), the gateway tears down the iMessage channel as a side effect. These subsystems should be independent.
Evidence
[bonjour] restarting advertiser (service stuck in probing for 17-20s)immediately followed by[imessage] monitor failed: Error: imsg rpc timeout (watch.subscribe)and[imessage] [default] channel exited_openclaw-gw._tcp(confirmed viadns-sd -B)Requested changes
bonjour.enabledconfig key inopenclaw.json(currently onlyOPENCLAW_DISABLE_BONJOURenv var exists, discovered inserver.impl-WjqjRArz.js:9341)Workaround
OPENCLAW_DISABLE_BONJOUR=1environment variable disables Bonjour entirely. Gateway is accessed via loopback; discovery is not needed.