openclaw - 💡(How to fix) Fix [Bug]: Docker image 2026.5.3-1 ships metadata-only Discord and WhatsApp extensions; channels do not register

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 the Docker image from 2026.4.20 to 2026.5.3-1, the Discord and WhatsApp channel plugins no longer register. Inspection of /app/dist/extensions/ inside the running gateway shows both directories contain only openclaw.plugin.json and package.json with no runtime JavaScript, while dist/extensions/telegram/ and other unaffected channels contain full runtime files (index.js, setup-entry.js, etc.). LINE and QQBot show the same metadata-only pattern; Feishu (already tracked in #77424) does as well.

Root Cause

After upgrading the Docker image from 2026.4.20 to 2026.5.3-1, the Discord and WhatsApp channel plugins no longer register. Inspection of /app/dist/extensions/ inside the running gateway shows both directories contain only openclaw.plugin.json and package.json with no runtime JavaScript, while dist/extensions/telegram/ and other unaffected channels contain full runtime files (index.js, setup-entry.js, etc.). LINE and QQBot show the same metadata-only pattern; Feishu (already tracked in #77424) does as well.

Fix Action

Fix / Workaround

Last known good version: 2026.4.20 (same Compose configuration, Discord and WhatsApp routed normally).

  • First known bad version: 2026.5.3-1.
  • Related issues: #77424 (Feishu metadata-only in v2026.5.3), #77483 (5.x externalization + missing channels UX), #77266 (external plugins dropped on upgrade). The pattern appears consistent with the in-flight plugin externalization work — channels whose runtime is now expected to come from a standalone npm package (e.g. @openclaw/discord, @openclaw/whatsapp) ship only manifest files in the Docker image, with no automatic install step.
  • A temporary user workaround is to install the externalized packages explicitly inside the running gateway; this has not yet been verified in this sessio

Code Example

$ docker inspect <gateway> --format '{{.Config.Image}}'
  openclaw-gateway:tools   # locally re-tagged from
  ghcr.io/openclaw/openclaw:2026.5.3-1
  
  $ docker exec <gateway> sh -c 'cat /app/package.json | grep version'
  "version": "2026.5.3-1",
  
  $ for ext in discord whatsapp feishu telegram slack signal line imessage matrix
  irc qqbot; do
      files=$(docker exec <gateway> ls /app/dist/extensions/$ext 2>/dev/null | wc
  -l)
      idx=$(docker exec <gateway> test -f /app/dist/extensions/$ext/index.js && echo
   yes || echo no)
      printf '%-12s files=%-3s index.js=%s\n' "$ext" "$files" "$idx"
    done
  discord      files=2   index.js=no
  whatsapp     files=2   index.js=no
  feishu       files=3   index.js=no
  telegram     files=22  index.js=yes
  slack        files=24  index.js=yes
  signal       files=12  index.js=yes
  line         files=2   index.js=no
  imessage     files=13  index.js=yes
  matrix       files=21  index.js=yes
  irc          files=11  index.js=yes
  qqbot        files=3   index.js=no
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

After upgrading the Docker image from 2026.4.20 to 2026.5.3-1, the Discord and WhatsApp channel plugins no longer register. Inspection of /app/dist/extensions/ inside the running gateway shows both directories contain only openclaw.plugin.json and package.json with no runtime JavaScript, while dist/extensions/telegram/ and other unaffected channels contain full runtime files (index.js, setup-entry.js, etc.). LINE and QQBot show the same metadata-only pattern; Feishu (already tracked in #77424) does as well.

Steps to reproduce

  1. Pull ghcr.io/openclaw/openclaw:2026.5.3-1 and start the gateway via Docker Compose with channels.discord.enabled = true and channels.whatsapp.enabled = true in openclaw.json, and a valid DISCORD_BOT_TOKEN in the environment.
  2. From inside the running gateway container, run: ls /app/dist/extensions/discord ls /app/dist/extensions/whatsapp ls /app/dist/extensions/telegram
  3. Run openclaw gateway call channels.status from inside the container.

Expected behavior

On 2026.4.20, the same configuration produced active Discord and WhatsApp channels in channels.status, with messages routed end-to-end. The expectation is that dist/extensions/discord/ and dist/extensions/whatsapp/ ship the same runtime JS shape (index.js, setup-entry.js, *-api.js) that dist/extensions/telegram/ ships, and that the plugin registry loads and registers them.

Actual behavior

  1. Pull ghcr.io/openclaw/openclaw:2026.5.3-1 and start the gateway via Docker Compose with channels.discord.enabled = true and channels.whatsapp.enabled = true in openclaw.json, and a valid DISCORD_BOT_TOKEN in the environment.
  2. From inside the running gateway container, run: ls /app/dist/extensions/discord ls /app/dist/extensions/whatsapp ls /app/dist/extensions/telegram
  3. Run openclaw gateway call channels.status from inside the container.

OpenClaw version

2026.5.3-1 (image), Node v24.14.0 inside container

Operating system

Ubuntu 24.04.4 LTS (host)

Install method

Docker (image ghcr.io/openclaw/openclaw:2026.5.3-1 via Docker Compose)

Model

NOT_ENOUGH_INFO — packaging-time defect, model-independent

Provider / routing chain

NOT_ENOUGH_INFO — packaging-time defect; affected channels never register, so no provider chain is exercised

Additional provider/model setup details

No response

Logs, screenshots, and evidence

$ docker inspect <gateway> --format '{{.Config.Image}}'
  openclaw-gateway:tools   # locally re-tagged from
  ghcr.io/openclaw/openclaw:2026.5.3-1
  
  $ docker exec <gateway> sh -c 'cat /app/package.json | grep version'
  "version": "2026.5.3-1",
  
  $ for ext in discord whatsapp feishu telegram slack signal line imessage matrix
  irc qqbot; do
      files=$(docker exec <gateway> ls /app/dist/extensions/$ext 2>/dev/null | wc
  -l)
      idx=$(docker exec <gateway> test -f /app/dist/extensions/$ext/index.js && echo
   yes || echo no)
      printf '%-12s files=%-3s index.js=%s\n' "$ext" "$files" "$idx"
    done
  discord      files=2   index.js=no
  whatsapp     files=2   index.js=no
  feishu       files=3   index.js=no
  telegram     files=22  index.js=yes
  slack        files=24  index.js=yes
  signal       files=12  index.js=yes
  line         files=2   index.js=no
  imessage     files=13  index.js=yes
  matrix       files=21  index.js=yes
  irc          files=11  index.js=yes
  qqbot        files=3   index.js=no

Impact and severity

  • Affected: any user running the ghcr.io/openclaw/openclaw:2026.5.3-1 Docker image with Discord, WhatsApp, LINE, QQBot, or Feishu channels enabled.
  • Severity: High — affected channels do not register; agents cannot send or receive messages on those surfaces.
  • Frequency: Deterministic — observed on every gateway start with this image.
  • Consequence: Complete message-routing outage for the affected channels until the image is rolled back or the missing plugin packages are installed manually.

Additional information

Last known good version: 2026.4.20 (same Compose configuration, Discord and WhatsApp routed normally).

  • First known bad version: 2026.5.3-1.
  • Related issues: #77424 (Feishu metadata-only in v2026.5.3), #77483 (5.x externalization + missing channels UX), #77266 (external plugins dropped on upgrade). The pattern appears consistent with the in-flight plugin externalization work — channels whose runtime is now expected to come from a standalone npm package (e.g. @openclaw/discord, @openclaw/whatsapp) ship only manifest files in the Docker image, with no automatic install step.
  • A temporary user workaround is to install the externalized packages explicitly inside the running gateway; this has not yet been verified in this sessio

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

On 2026.4.20, the same configuration produced active Discord and WhatsApp channels in channels.status, with messages routed end-to-end. The expectation is that dist/extensions/discord/ and dist/extensions/whatsapp/ ship the same runtime JS shape (index.js, setup-entry.js, *-api.js) that dist/extensions/telegram/ ships, and that the plugin registry loads and registers them.

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]: Docker image 2026.5.3-1 ships metadata-only Discord and WhatsApp extensions; channels do not register