Skip to content

Health monitor emits system events for channels removed from config #41514

@AbebaCo

Description

@AbebaCo

Bug Description

The gateway's built-in health monitor continues to emit system events for channels that have been completely removed from openclaw.json, including both channels and plugins.entries sections.

Steps to Reproduce

  1. Configure a BlueBubbles channel in openclaw.json (under channels and plugins.entries)
  2. Remove the channel entirely from both channels and plugins.entries
  3. Delete associated credential files
  4. Restart the gateway

Expected Behavior

The health monitor should not check or emit events for channels that no longer exist in the config.

Actual Behavior

The health monitor continues to fire system events every ~3 minutes:

[health-monitor] BlueBubbles restarted: server unreachable for 3 consecutive checks

These system events trigger embedded agent runs, which consume API tokens and create log noise.

Impact

  • Each system event triggers an embedded agent run (costs tokens even if it fails)
  • On OAuth-authenticated providers, the retry storm can cascade into rate limit errors and gateway instability
  • No user-facing config key exists to disable the health monitor (openclaw config set healthMonitor.enabled false returns Unrecognized key)

Environment

  • OpenClaw version: 2026.3.8 (3caab92)
  • OS: macOS (Darwin 25.3.0 arm64)
  • Node: v22.22.0

Suggested Fix

  1. The health monitor should only check channels present in the current config
  2. A config key (e.g., healthMonitor.enabled or healthMonitor.channels) should allow users to disable or scope the health monitor
  3. On gateway restart, any internal channel registry should be rebuilt from the current config, not carried over from prior state

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions