Skip to content

[Bug]: Bonjour plugin does not wire Ciao cancellation rejection handler, causing unhandled rejection on CIAO PROBING CANCELLED #71869

Description

@yoon1012

Bug type

Crash (process/app exits or hangs)

Beta release blocker

No

Summary

OpenClaw 2026.4.24 reports an unhandled promise rejection for CIAO PROBING CANCELLED while the bundled Bonjour plugin contains a Ciao cancellation classifier that is not wired into the advertised runtime call.

Steps to reproduce

  1. Start the OpenClaw gateway on the affected machine.
  2. Observe that the gateway exits shortly after startup.
  3. Run OpenClaw doctor / repair checks and start the gateway again.
  4. Observe that the gateway still exits and logs Unhandled promise rejection: CIAO PROBING CANCELLED.

Expected behavior

The bundled Bonjour plugin contains CIAO_CANCELLATION_MESSAGE_RE and handleCiaoUnhandledRejection, so CIAO PROBING CANCELLED should be handled by the registered unhandled rejection suppression path instead of reaching the global unhandled rejection handler.

Actual behavior

OpenClaw logged Unhandled promise rejection: CIAO PROBING CANCELLED and wrote a stability bundle under /home/<user>/.openclaw/logs/stability/...-unhandled_rejection.json.

The installed Bonjour plugin calls startGatewayBonjourAdvertiser(..., { logger: api.logger }), so deps.registerUnhandledRejectionHandler is not provided.

OpenClaw version

2026.4.24

Operating system

Ubuntu 24.04.4 LTS, Linux 6.17.0-22-generic x86_64

Install method

npm global install path: /home//.npm-global/lib/node_modules/openclaw CLI path: /home//.local/bin/openclaw Node.js: v25.9.0 npm: 11.12.1

Model

NOT_ENOUGH_INFO

Provider / routing chain

NOT_ENOUGH_INFO

Additional provider/model setup details

NOT_ENOUGH_INFO

Logs, screenshots, and evidence

Observed log:


10:07:22 [openclaw] Unhandled promise rejection: CIAO PROBING CANCELLED
10:07:22 [openclaw] wrote stability bundle: /home/<user>/.openclaw/logs/stability/openclaw-stability-2026-04-26T01-07-22-984Z-<pid>-unhandled_rejection.json


Stability bundle excerpt:


{
  "version": 1,
  "generatedAt": "2026-04-26T01:07:22.984Z",
  "reason": "unhandled_rejection",
  "process": {
    "pid": "<pid>",
    "platform": "linux",
    "arch": "x64",
    "node": "25.9.0"
  },
  "host": {
    "hostname": "<hostname>"
  }
}


Installed code evidence:

`dist/extensions/bonjour/index.js` contains:


const CIAO_CANCELLATION_MESSAGE_RE = /^CIAO (?:ANNOUNCEMENT|PROBING) CANCELLED\b/u;
function classifyCiaoUnhandledRejection(reason) { ... }


and:


cleanupUnhandledRejection: services.length > 0 && deps.registerUnhandledRejectionHandler
  ? deps.registerUnhandledRejectionHandler(handleCiaoUnhandledRejection)
  : void 0


but the plugin starts the advertiser with:


startGatewayBonjourAdvertiser(..., { logger: api.logger })


so `deps.registerUnhandledRejectionHandler` is not passed.

Impact and severity

Affected users/systems/channels: OpenClaw gateway on the affected Linux machine.
Severity: blocks gateway startup on the affected machine.
Frequency: repeated after gateway restart and doctor checks on the affected machine.
Consequence: gateway exits before it can remain running.

Additional information

A local patch that passes registerUnhandledRejectionHandler into startGatewayBonjourAdvertiser changed the installed bundle from unpatched to patched locally. Last known good and first known bad versions are NOT_ENOUGH_INFO.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingbug:crashProcess/app exits unexpectedly or hangs

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions