openclaw - 💡(How to fix) Fix [Bug] BlueBubbles channel dispatch broken in v2026.5.27 — TypeError: Cannot read properties of undefined (reading 'run') (same regression as #87602)

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…

After upgrading OpenClaw from v2026.5.26 to v2026.5.27 (stable, the current latest dist-tag), the BlueBubbles channel fails to dispatch incoming iMessage messages to the agent session. The typing indicator fires (different code path) but the reply itself never lands — to the end user it looks like the agent is "typing forever".

This is the same regression as #87602 (Feishu), but on the @openclaw/bluebubbles plugin, which has not been republished with the fix. @openclaw/bluebubbles@latest is still 2026.5.7, which calls the old core.channel.turn.run() API removed in 2026.5.27.

Error Message

{"subsystem":"channels/bluebubbles"} [default] [bluebubbles] debounce flush failed: TypeError: Cannot read properties of undefined (reading 'run')

Root Cause

Same as #87602: API rename from core.channel.turn.run() to core.channel.inbound.run() in 2026.5.27. The BlueBubbles plugin still has the old call site:

@openclaw/[email protected]/dist/monitor-processing-Dy-LY2QQ.js:1935

await core.channel.turn.run({
  channel: "bluebubbles",
  accountId: account.accountId,
  raw: ctxPayload,
  adapter: { /* ... */ }
});

The runtime channel object (built in runtime-channel-Cmfay0aK.js in the 2026.5.27 gateway dist) now exposes this under channel.inbound.run (with siblings buildContext, runPreparedReply, dispatchReply). channel.turn no longer exists — hence undefined.run.

Patching that single call site (core.channel.turn.runcore.channel.inbound.run) and restarting the gateway restores iMessage dispatch end-to-end.

Fix Action

Workaround

Either:

  1. Roll the gateway back to 2026.5.26:

    npm install -g [email protected]
    OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1 openclaw gateway install --force
    OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1 openclaw gateway restart

    (Note: in my case launchd silently killed the 2026.5.26 daemon even though it ran fine in the foreground; stderr is routed to /dev/null by the installed plist, making this hard to debug.)

  2. Patch the plugin in place until a fixed @openclaw/bluebubbles ships:

    sed -i '' 's/core\.channel\.turn\.run/core.channel.inbound.run/' \
      ~/.openclaw/npm/node_modules/@openclaw/bluebubbles/dist/monitor-processing-Dy-LY2QQ.js
    openclaw gateway restart

    This patch will be overwritten by any plugin reinstall.

Code Example

{"subsystem":"channels/bluebubbles"} [default] [bluebubbles] debounce flush failed: TypeError: Cannot read properties of undefined (reading 'run')

---

await core.channel.turn.run({
  channel: "bluebubbles",
  accountId: account.accountId,
  raw: ctxPayload,
  adapter: { /* ... */ }
});

---

npm install -g openclaw@2026.5.26
   OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1 openclaw gateway install --force
   OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1 openclaw gateway restart

---

sed -i '' 's/core\.channel\.turn\.run/core.channel.inbound.run/' \
     ~/.openclaw/npm/node_modules/@openclaw/bluebubbles/dist/monitor-processing-Dy-LY2QQ.js
   openclaw gateway restart
RAW_BUFFERClick to expand / collapse

Description

After upgrading OpenClaw from v2026.5.26 to v2026.5.27 (stable, the current latest dist-tag), the BlueBubbles channel fails to dispatch incoming iMessage messages to the agent session. The typing indicator fires (different code path) but the reply itself never lands — to the end user it looks like the agent is "typing forever".

This is the same regression as #87602 (Feishu), but on the @openclaw/bluebubbles plugin, which has not been republished with the fix. @openclaw/bluebubbles@latest is still 2026.5.7, which calls the old core.channel.turn.run() API removed in 2026.5.27.

Steps to Reproduce

  1. Run openclaw update from v2026.5.26 → v2026.5.27 (or fresh install at 2026.5.27)
  2. Have @openclaw/[email protected] installed (current latest)
  3. Send an iMessage DM to the bot via BlueBubbles
  4. Observe the error in /tmp/openclaw/openclaw-YYYY-MM-DD.log

Expected Behavior

BlueBubbles inbound messages dispatch to the agent session and receive a reply.

Actual Behavior

The BlueBubbles webhook receives the message, the typing indicator starts, then debounce flush throws:

{"subsystem":"channels/bluebubbles"} [default] [bluebubbles] debounce flush failed: TypeError: Cannot read properties of undefined (reading 'run')

No reply is sent. The outbound payload ends up in ~/.openclaw/delivery-queue/failed/ with lastError: "Outbound not configured for channel: imessage" on retry.

Root Cause

Same as #87602: API rename from core.channel.turn.run() to core.channel.inbound.run() in 2026.5.27. The BlueBubbles plugin still has the old call site:

@openclaw/[email protected]/dist/monitor-processing-Dy-LY2QQ.js:1935

await core.channel.turn.run({
  channel: "bluebubbles",
  accountId: account.accountId,
  raw: ctxPayload,
  adapter: { /* ... */ }
});

The runtime channel object (built in runtime-channel-Cmfay0aK.js in the 2026.5.27 gateway dist) now exposes this under channel.inbound.run (with siblings buildContext, runPreparedReply, dispatchReply). channel.turn no longer exists — hence undefined.run.

Patching that single call site (core.channel.turn.runcore.channel.inbound.run) and restarting the gateway restores iMessage dispatch end-to-end.

Impact

BlueBubbles / iMessage channel completely broken for inbound DMs on every install that runs openclaw update to 2026.5.27 (which is now the latest stable, not just a beta). The pairing with #87602 means the channel-API rename shipped without a coordinated republish of all out-of-tree channel plugins.

Workaround

Either:

  1. Roll the gateway back to 2026.5.26:

    npm install -g [email protected]
    OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1 openclaw gateway install --force
    OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1 openclaw gateway restart

    (Note: in my case launchd silently killed the 2026.5.26 daemon even though it ran fine in the foreground; stderr is routed to /dev/null by the installed plist, making this hard to debug.)

  2. Patch the plugin in place until a fixed @openclaw/bluebubbles ships:

    sed -i '' 's/core\.channel\.turn\.run/core.channel.inbound.run/' \
      ~/.openclaw/npm/node_modules/@openclaw/bluebubbles/dist/monitor-processing-Dy-LY2QQ.js
    openclaw gateway restart

    This patch will be overwritten by any plugin reinstall.

Ask

Please publish a @openclaw/bluebubbles release (e.g. 2026.5.8) with the channel.inbound.run rename applied, and bump npm latest so openclaw update pulls a compatible pair.

Environment

  • OpenClaw 2026.5.27 (27ae826), upgraded from 2026.5.26 (10ad3aa)
  • @openclaw/[email protected] (current npm latest)
  • BlueBubbles server: macOS 26.5.0, Private API enabled
  • Channel mode: webhook, DM policy: allowlist
  • macOS 15, Node.js v25.8.2, installed via npm -g

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 [Bug] BlueBubbles channel dispatch broken in v2026.5.27 — TypeError: Cannot read properties of undefined (reading 'run') (same regression as #87602)