Bug Report
Version: 2026.3.24 / 2026.3.28-beta.1
Platform: macOS arm64, Node 25.8.0
Summary
When plugins.allow is set but does not include telegram or whatsapp, these channel plugins are silently disabled. The gateway boots normally, openclaw doctor passes, config validate passes, and openclaw status shows gateway=loaded — but channels never initialize. The channels list is simply empty with no explanation.
Root Cause
resolveEffectiveEnableState() in config-state-BCw27kbO.js returns { enabled: false, reason: 'not in allowlist' } for channel plugins when they're missing from plugins.allow. This happens silently — no log warning, no status indication, no doctor alert.
Interestingly, resolveGatewayStartupPluginIds() correctly identifies telegram/whatsapp as needed based on channel config, but resolveEffectiveEnableState() overrides this without any output.
Steps to Reproduce
- Have a working OpenClaw setup with Telegram and WhatsApp configured
- Install a third-party plugin that modifies
plugins.allow
- While debugging the third-party plugin, reduce
plugins.allow to only the third-party plugin ID (e.g., ['acpx'])
- Restart the gateway
- Channels silently disappear — no error, no warning
Impact
This caused a 2.5-hour outage. Every diagnostic tool said the system was healthy. The root cause was only found by reading the minified dist source and calling resolveEffectiveEnableState() directly in a REPL.
Expected Behavior
At minimum, one of:
- A warning log:
[telegram] plugin disabled: not in plugins.allow
openclaw status channels list showing telegram: disabled (not in allowlist) instead of empty
openclaw doctor detecting configured channels that are not in plugins.allow and flagging it
Ideal fix: Bundled channel plugins with valid channel config (i.e., channels.telegram.enabled: true) should either bypass the allowlist check or be auto-added to plugins.allow when a channel is configured.
Bug Report
Version: 2026.3.24 / 2026.3.28-beta.1
Platform: macOS arm64, Node 25.8.0
Summary
When
plugins.allowis set but does not includetelegramorwhatsapp, these channel plugins are silently disabled. The gateway boots normally,openclaw doctorpasses,config validatepasses, andopenclaw statusshowsgateway=loaded— but channels never initialize. The channels list is simply empty with no explanation.Root Cause
resolveEffectiveEnableState()inconfig-state-BCw27kbO.jsreturns{ enabled: false, reason: 'not in allowlist' }for channel plugins when they're missing fromplugins.allow. This happens silently — no log warning, no status indication, no doctor alert.Interestingly,
resolveGatewayStartupPluginIds()correctly identifies telegram/whatsapp as needed based on channel config, butresolveEffectiveEnableState()overrides this without any output.Steps to Reproduce
plugins.allowplugins.allowto only the third-party plugin ID (e.g.,['acpx'])Impact
This caused a 2.5-hour outage. Every diagnostic tool said the system was healthy. The root cause was only found by reading the minified dist source and calling
resolveEffectiveEnableState()directly in a REPL.Expected Behavior
At minimum, one of:
[telegram] plugin disabled: not in plugins.allowopenclaw statuschannels list showingtelegram: disabled (not in allowlist)instead of emptyopenclaw doctordetecting configured channels that are not inplugins.allowand flagging itIdeal fix: Bundled channel plugins with valid channel config (i.e.,
channels.telegram.enabled: true) should either bypass the allowlist check or be auto-added toplugins.allowwhen a channel is configured.