Skip to content

Unconfigured platform plugins should skip silently instead of reconnecting forever #31049

@dfwqdyl-ui

Description

@dfwqdyl-ui

Body:

  ## Problem
  When a platform plugin (e.g., `hermes-discord`) is referenced in the `plugins` section of `config.yaml` but has no credentials       configured (no bot token), the gateway enters an infinite reconnect loop instead of skipping the platform silently.
  ## Reproduction
  1. Have `discord: - hermes-discord` in the `plugins` section of `~/.hermes/config.yaml` (default config includes this)
  2. Do **not** configure a Discord bot token
  3. Run `hermes gateway run`
  ## Expected behavior

If a platform adapter has no credentials configured, it should log a warning and be skipped silently. No reconnect attempts.

Actual behavior

Gateway logs show continuous reconnect loop:

ERROR hermes_plugins.discord_platform.adapter: [Discord] No bot token configured
WARNING gateway.run: ✗ discord failed to connect
INFO gateway.run: Starting reconnection watcher for 1 failed platform(s): discord
INFO gateway.run: Reconnecting discord (attempt 2)...
ERROR hermes_plugins.discord_platform.adapter: [Discord] No bot token configured
INFO gateway.run: Reconnect discord failed, next retry in 60s
...

The reconnect interval grows (30s → 60s → 120s → ...) but never stops.

Impact

  • Wastes CPU/network with unnecessary reconnect attempts
  • Pollutes logs with repeated error messages
  • Affects any platform that ships as a default plugin but isn't configured by the user (discord, telegram, slack, whatsapp, signal, etc.)

Workaround

Add explicit disable in platforms section:

platforms:
  discord:
    enabled: false

Environment

• Hermes Agent: v0.14.0 (cae753735, 2026.5.24)
• OS: Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded but workaround existscomp/gatewayGateway runner, session dispatch, deliverycomp/pluginsPlugin system and bundled pluginstype/bugSomething isn't working

    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