openclaw - 💡(How to fix) Fix bonjour plugin loads + CIAO unhandled rejections cause sporadic ACP spawn failures, despite plugins.entries.bonjour.enabled=false [1 comments, 2 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#72222Fetched 2026-04-27 05:33:05
View on GitHub
Comments
1
Participants
2
Timeline
2
Reactions
0
Timeline (top)
closed ×1commented ×1

In openclaw 2026.4.24:

  1. The bonjour plugin (newly added in this version) loads regardless of plugins.entries.bonjour.enabled: false in openclaw.json. Other plugins (talk-voice) honor the same enabled: false config and are correctly excluded from the gateway-ready plugin list. Bonjour is not.

  2. The bonjour plugin throws repeated Unhandled promise rejection: CIAO ANNOUNCEMENT CANCELLED errors. These appear when the bonjour watchdog re-advertises (bonjour: restarting advertiser (service stuck in announcing for ~16000ms)) and the previous CIAO announcement gets cancelled.

  3. These crashes appear to destabilize the gateway during ACP spawn operations — observed multiple sessions_spawn(runtime="acp") failures with gateway closed (1006 abnormal closure (no close frame)) or gateway timeout after 10000ms immediately following CIAO rejection events in the gateway log.

Root Cause

Phase-2-style architectures (Charlie main → ACP delegation for substantive work) become unreliable when ACP spawn fails sporadically. We see ~10-20% of ACP spawn attempts timing out or aborting due to gateway instability traceable to CIAO crashes. Plus the unhandled rejection noise pollutes logs and triggers stability-bundle dumps.

Fix Action

Workaround

None reliable. enabled: false doesn't work. Forcibly killing bonjour from outside isn't an option since it's bundled. Only choice today is to live with the noise + occasional spawn failures.

RAW_BUFFERClick to expand / collapse

Summary

In openclaw 2026.4.24:

  1. The bonjour plugin (newly added in this version) loads regardless of plugins.entries.bonjour.enabled: false in openclaw.json. Other plugins (talk-voice) honor the same enabled: false config and are correctly excluded from the gateway-ready plugin list. Bonjour is not.

  2. The bonjour plugin throws repeated Unhandled promise rejection: CIAO ANNOUNCEMENT CANCELLED errors. These appear when the bonjour watchdog re-advertises (bonjour: restarting advertiser (service stuck in announcing for ~16000ms)) and the previous CIAO announcement gets cancelled.

  3. These crashes appear to destabilize the gateway during ACP spawn operations — observed multiple sessions_spawn(runtime="acp") failures with gateway closed (1006 abnormal closure (no close frame)) or gateway timeout after 10000ms immediately following CIAO rejection events in the gateway log.

Reproduction

  1. Install openclaw 2026.4.24 on a host where bonjour mDNS announcement is unreliable (anything with a Mac on a flaky LAN, or laptops moving between networks).
  2. Set plugins.entries.bonjour.enabled: false in ~/.openclaw/openclaw.json.
  3. Restart daemon: openclaw daemon restart.
  4. Check the gateway-ready log line: bonjour is still in the loaded plugin list.
  5. Watch /tmp/openclaw/openclaw-YYYY-MM-DD.log for CIAO ANNOUNCEMENT CANCELLED errors. They will appear every ~15-30s as the bonjour watchdog cycles.
  6. Trigger an ACP spawn during a CIAO rejection window — sessions_spawn will fail with abnormal closure or timeout.

Expected

  • plugins.entries.bonjour.enabled: false should prevent the bonjour plugin from loading at all (consistent with talk-voice and other entries that respect this flag).
  • CIAO ANNOUNCEMENT CANCELLED should be caught/handled inside the bonjour plugin, not bubble up as an unhandled promise rejection that destabilizes the gateway.

Workaround

None reliable. enabled: false doesn't work. Forcibly killing bonjour from outside isn't an option since it's bundled. Only choice today is to live with the noise + occasional spawn failures.

Why this matters

Phase-2-style architectures (Charlie main → ACP delegation for substantive work) become unreliable when ACP spawn fails sporadically. We see ~10-20% of ACP spawn attempts timing out or aborting due to gateway instability traceable to CIAO crashes. Plus the unhandled rejection noise pollutes logs and triggers stability-bundle dumps.

Environment

  • openclaw 2026.4.24
  • macOS (Apple Silicon, Mac mini)
  • LAN with multiple subnets / flaky mDNS visibility
  • Gateway running as launchd service ai.openclaw.gateway
  • 7 plugins enabled in config (acpx, browser, device-pair, discord, phone-control, telegram + bonjour despite enabled: false)

Related

  • Bonjour plugin appears to be new in 2026.4.24 — no entry in earlier plugins.entries defaults
  • ACP architecture: see #72210 (filed earlier today re cron delivery cosmetic noise)

extent analysis

TL;DR

The bonjour plugin loads despite being disabled and causes gateway instability due to unhandled promise rejections, which can be mitigated by investigating the plugin's loading mechanism and error handling.

Guidance

  • Investigate why the plugins.entries.bonjour.enabled: false configuration is not being respected by the bonjour plugin, potentially by checking the plugin's initialization code.
  • Review the bonjour plugin's error handling to catch and handle the CIAO ANNOUNCEMENT CANCELLED errors, preventing them from bubbling up as unhandled promise rejections.
  • Consider temporarily disabling the bonjour plugin by removing or commenting out its entry in the plugins.entries configuration to verify if the issue is resolved.
  • Analyze the gateway logs to understand the correlation between the CIAO rejection events and the ACP spawn failures, potentially identifying a pattern or trigger for the instability.

Notes

The issue seems to be specific to the bonjour plugin and its interaction with the gateway, and resolving it may require modifications to the plugin's code or configuration.

Recommendation

Apply a workaround by temporarily disabling the bonjour plugin or investigating alternative configurations to mitigate the issue, as the current version of the plugin appears to have a flaw in its loading mechanism and error handling.

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…

Still need to ship something?

×6

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

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix bonjour plugin loads + CIAO unhandled rejections cause sporadic ACP spawn failures, despite plugins.entries.bonjour.enabled=false [1 comments, 2 participants]