Bug type
Regression (worked before, now fails) / packaging+migration UX
Summary
Upgrading OpenClaw from 2026.4.27 to 2026.5.2 (or doing a fresh 2026.5.2 install) leaves all built-in channel extensions silently absent from the active install. The user's pre-existing WhatsApp (and other channels) goes offline with no error message identifying the cause.
After upgrade, openclaw channels status no longer lists WhatsApp at all; only a config warning appears:
- plugins.entries.whatsapp: plugin not found: whatsapp (stale config entry ignored; remove it from plugins config)
The same silent drop affects 25 extension dirs that were present in dist/extensions/ of 2026.4.27 but are absent in 2026.5.2's core npm package. WhatsApp is the most user-visible because it's the primary inbound channel for many deployments. Affected extensions:
acpx, bluebubbles, brave, codex, diagnostics-otel, diagnostics-prometheus, diffs, discord, feishu, google-meet, googlechat, line, lobster, memory-lancedb, msteams, nextcloud-talk, nostr, qqbot, synology-chat, tlon, twitch, voice-call, whatsapp, zalo, zalouser
(Net: 2026.5.2 adds file-transfer; drops the 25 above.)
Architectural context (likely root cause)
These channel extensions appear to have been externalized into separate @openclaw/* npm packages in the 5.x line. npm view @openclaw/whatsapp versions shows the package starts at 2026.5.1-beta.1 and is currently at 2026.5.3. The published description: "OpenClaw WhatsApp channel plugin".
So this looks like an intentional architectural change: built-in channels in 4.x → external @openclaw/<channel> plugins in 5.x. However, the 4.27→5.2 upgrade does not auto-install the corresponding external plugins, and there is no migration warning or messaging telling the operator that previously-working channels just went offline.
Steps to reproduce
- On a host with a working
2026.4.27 install (WhatsApp linked and channels.whatsapp.enabled = true), confirm WhatsApp shows running, connected in openclaw channels status.
- Upgrade to
2026.5.2:
npm install -g openclaw@2026.5.2 --force
# or a clean rm + install
- Restart the gateway.
- Run
openclaw channels status.
Expected behavior
Either:
- The previously-installed channel extensions remain functional after upgrade (auto-migrate to the externalized plugin), OR
- The CLI emits a clear migration warning naming each channel that needs
openclaw plugins install @openclaw/<name> to be restored, OR
- The CHANGELOG / upgrade guide documents this breaking change explicitly so operators don't ship an outage on what looks like a routine version bump.
Actual behavior
WhatsApp (and 24 other extensions) silently disappears from openclaw channels status. The only signal is a benign-looking config warning that says "stale config entry ignored; remove it from plugins config" — which actively misleads the operator into removing valid config rather than installing the external plugin.
The schema-level support for these channels survives in the 5.2 install:
/data/.npm-global/lib/node_modules/openclaw/dist/zod-schema.providers-whatsapp-BJaer4_9.js
/data/.npm-global/lib/node_modules/openclaw/dist/plugin-sdk/src/config/types.whatsapp.d.ts
/data/.npm-global/lib/node_modules/openclaw/dist/plugin-sdk/src/config/zod-schema.providers-whatsapp.d.ts
/data/.npm-global/lib/node_modules/openclaw/docs/channels/whatsapp.md
i.e. 5.2 core still understands the concept of a WhatsApp channel (validates config, ships docs) but won't ship or auto-install the implementation.
Reproduced after clean reinstall
To rule out local install corruption, we performed a clean reinstall on the same host:
rm -rf /data/.npm-global/lib/node_modules/openclaw
npm install -g openclaw@2026.5.2
# (KLAWBI_REDACTOR_DISABLED=1 was needed because the in-tree NODE_OPTIONS preload
# depends on the very install being replaced — separate ergonomics observation,
# not the bug being reported here)
Result:
- Install successful:
added 554 packages in 32s
- Active version verified:
OpenClaw 2026.5.2 (8b2a6e5)
dist/extensions/ still contains only 96 entries — exactly the same 25 extensions absent
openclaw channels status still shows the same plugin not found: whatsapp warning and no WhatsApp channel in the list
So the regression is reproducible from the upstream npm package itself, not a local artifact.
Workaround used in our deployment
We rolled back the active install to 2026.4.27 from a snapshot at /data/.npm-global/lib/node_modules/openclaw.pre-2026.5.2. After container restart, WhatsApp registered cleanly and openclaw channels status shows:
- WhatsApp default: enabled, configured, linked, running, connected, in:2m ago, dm:open, ...
A presumed alternative workaround (untested by us) per #77424 is staying on 5.2 and running:
openclaw plugins install @openclaw/whatsapp --dangerously-force-unsafe-install
per the same pattern reported there for @openclaw/feishu.
Suggested fix
Pick one (or several):
- Auto-install
@openclaw/<name> for any channel that was active in the prior install but is no longer present in dist/extensions/ after upgrade.
- Migration warning at gateway start: when
channels.<name>.enabled = true but the corresponding plugin is not found, emit a prominent warning that says RUN: openclaw plugins install @openclaw/<name> rather than the current "stale config entry ignored; remove it from plugins config" message — that wording actively misdirects.
- Document the externalization in the
2026.5.x upgrade guide / CHANGELOG so operators know to install the external plugins as part of the upgrade.
The current behavior makes a major version bump look like a minor patch and ships a silent outage.
OpenClaw version
- Pre-upgrade:
2026.4.27 (cbc2ba0) — WhatsApp working
- Upgrade target:
2026.5.2 (8b2a6e5) — WhatsApp silently dropped
- After rollback:
2026.4.27 (cbc2ba0) — WhatsApp restored
Operating system
Linux (Ubuntu in Docker, openclaw-hvex deployment), node v22.22.1, npm 10.9.4.
Install method
npm install -g openclaw@2026.5.2
Related issues
Forensics bundle
We have a full incident bundle archived locally at /data/.openclaw/incidents/2026-05-04-whatsapp-extension-missing/ with:
- active install inventory (5.2)
- backup install inventory (4.27)
openclaw channels status output before + after clean reinstall
- ops-state status files showing the watchdog flipping
whatsapp-status.txt between down and connected
- sorted diff of
dist/extensions/ between active and backup
openclaw --version proof for both installs
- post-rollback verification
Happy to attach any of the above on request.
Bug type
Regression (worked before, now fails) / packaging+migration UX
Summary
Upgrading OpenClaw from
2026.4.27to2026.5.2(or doing a fresh2026.5.2install) leaves all built-in channel extensions silently absent from the active install. The user's pre-existing WhatsApp (and other channels) goes offline with no error message identifying the cause.After upgrade,
openclaw channels statusno longer lists WhatsApp at all; only a config warning appears:The same silent drop affects 25 extension dirs that were present in
dist/extensions/of2026.4.27but are absent in2026.5.2's core npm package. WhatsApp is the most user-visible because it's the primary inbound channel for many deployments. Affected extensions:acpx, bluebubbles, brave, codex, diagnostics-otel, diagnostics-prometheus, diffs, discord, feishu, google-meet, googlechat, line, lobster, memory-lancedb, msteams, nextcloud-talk, nostr, qqbot, synology-chat, tlon, twitch, voice-call, whatsapp, zalo, zalouser(Net:
2026.5.2addsfile-transfer; drops the 25 above.)Architectural context (likely root cause)
These channel extensions appear to have been externalized into separate
@openclaw/*npm packages in the5.xline.npm view @openclaw/whatsapp versionsshows the package starts at2026.5.1-beta.1and is currently at2026.5.3. The published description: "OpenClaw WhatsApp channel plugin".So this looks like an intentional architectural change: built-in channels in
4.x→ external@openclaw/<channel>plugins in5.x. However, the 4.27→5.2 upgrade does not auto-install the corresponding external plugins, and there is no migration warning or messaging telling the operator that previously-working channels just went offline.Steps to reproduce
2026.4.27install (WhatsApp linked andchannels.whatsapp.enabled = true), confirm WhatsApp showsrunning, connectedinopenclaw channels status.2026.5.2:npm install -g openclaw@2026.5.2 --force # or a clean rm + installopenclaw channels status.Expected behavior
Either:
openclaw plugins install @openclaw/<name>to be restored, ORActual behavior
WhatsApp (and 24 other extensions) silently disappears from
openclaw channels status. The only signal is a benign-looking config warning that says "stale config entry ignored; remove it from plugins config" — which actively misleads the operator into removing valid config rather than installing the external plugin.The schema-level support for these channels survives in the
5.2install:i.e.
5.2core still understands the concept of a WhatsApp channel (validates config, ships docs) but won't ship or auto-install the implementation.Reproduced after clean reinstall
To rule out local install corruption, we performed a clean reinstall on the same host:
Result:
added 554 packages in 32sOpenClaw 2026.5.2 (8b2a6e5)dist/extensions/still contains only 96 entries — exactly the same 25 extensions absentopenclaw channels statusstill shows the sameplugin not found: whatsappwarning and no WhatsApp channel in the listSo the regression is reproducible from the upstream npm package itself, not a local artifact.
Workaround used in our deployment
We rolled back the active install to
2026.4.27from a snapshot at/data/.npm-global/lib/node_modules/openclaw.pre-2026.5.2. After container restart, WhatsApp registered cleanly andopenclaw channels statusshows:A presumed alternative workaround (untested by us) per #77424 is staying on
5.2and running:per the same pattern reported there for
@openclaw/feishu.Suggested fix
Pick one (or several):
@openclaw/<name>for any channel that was active in the prior install but is no longer present indist/extensions/after upgrade.channels.<name>.enabled = truebut the corresponding plugin is not found, emit a prominent warning that saysRUN: openclaw plugins install @openclaw/<name>rather than the current "stale config entry ignored; remove it from plugins config" message — that wording actively misdirects.2026.5.xupgrade guide / CHANGELOG so operators know to install the external plugins as part of the upgrade.The current behavior makes a major version bump look like a minor patch and ships a silent outage.
OpenClaw version
2026.4.27(cbc2ba0) — WhatsApp working2026.5.2(8b2a6e5) — WhatsApp silently dropped2026.4.27(cbc2ba0) — WhatsApp restoredOperating system
Linux (Ubuntu in Docker, openclaw-hvex deployment),
node v22.22.1,npm 10.9.4.Install method
npm install -g openclaw@2026.5.2Related issues
5.2 → 5.3-1upgrade silently drops externally-installed@openclaw/*plugins (different mechanism, similar UX failure)2026.5.3Docker image shipsdist/extensions/feishu/with metadata only, missing JS —@openclaw/feishuworkaround documented there5.2microsoft speech plugin loads but never activates5.2brave plugin packaging regression2026.3.22/3.23) WhatsApp packaging regressions, suggesting this family of issue is recurrent at major-line transitionsForensics bundle
We have a full incident bundle archived locally at
/data/.openclaw/incidents/2026-05-04-whatsapp-extension-missing/with:openclaw channels statusoutput before + after clean reinstallwhatsapp-status.txtbetweendownandconnecteddist/extensions/between active and backupopenclaw --versionproof for both installsHappy to attach any of the above on request.