Summary
I updated OpenClaw on my VPS to 2026.3.2 and saw two false reports around channel state. The gateway health snapshot drops live runtime fields, and the doctor empty-allowlist scan still evaluates channels/accounts that are explicitly disabled.
Actual behavior
openclaw channels status --json shows Slack as configured and running, but openclaw health --json can still return:
botTokenSource: "none"
appTokenSource: "none"
running: false
- Gateway startup can print this warning even when WhatsApp is disabled:
channels.whatsapp.groupPolicy is "allowlist" but groupAllowFrom (and allowFrom) is empty
- On my VPS I saw the health mismatch and the warning at the same time while Slack Socket Mode was already connected.
Expected behavior
openclaw health --json should reflect the live runtime snapshot for channel/account state that already exists in the running gateway.
- Doctor should skip disabled channels/accounts when checking empty allowlist warnings.
Repro notes
- Update to
2026.3.2.
- Use a config with Slack enabled and configured, and WhatsApp set to
enabled: false.
- Start or restart
openclaw-gateway.
- Compare
openclaw channels status --json with openclaw health --json.
- Check startup logs for doctor warnings.
Environment:
- Linux VPS
systemd --user gateway service
- Slack enabled from config
- WhatsApp disabled in config
Proposed fix
- Overlay the gateway runtime snapshot onto the refreshed health cache before serving/broadcasting health.
- Skip disabled channels/accounts in
detectEmptyAllowlistPolicy().
- I have a patch ready and will open a PR linked to this issue.
Summary
I updated OpenClaw on my VPS to
2026.3.2and saw two false reports around channel state. The gateway health snapshot drops live runtime fields, and the doctor empty-allowlist scan still evaluates channels/accounts that are explicitly disabled.Actual behavior
openclaw channels status --jsonshows Slack as configured and running, butopenclaw health --jsoncan still return:botTokenSource: "none"appTokenSource: "none"running: falsechannels.whatsapp.groupPolicy is "allowlist" but groupAllowFrom (and allowFrom) is emptyExpected behavior
openclaw health --jsonshould reflect the live runtime snapshot for channel/account state that already exists in the running gateway.Repro notes
2026.3.2.enabled: false.openclaw-gateway.openclaw channels status --jsonwithopenclaw health --json.Environment:
systemd --usergateway serviceProposed fix
detectEmptyAllowlistPolicy().