Skip to content

[Bug]: Slack channel bindings with peer.kind "group" silently fail to route for public channels #31099

@amandiwakar

Description

@amandiwakar

Description

Slack channel bindings configured with peer.kind: "group" silently fail to match public Slack channels. Messages arrive but are not routed to the bound agent — they fall through to the default agent instead. No warning or error is logged.

Steps to Reproduce

  1. Configure a channel binding in openclaw.json:
{
  "agentId": "my-agent",
  "match": {
    "channel": "slack",
    "peer": {
      "kind": "group",
      "id": "C0AJMQWGPHN"
    }
  }
}
  1. Post a message in the public Slack channel C0AJMQWGPHN
  2. Observe that the message is handled by the default agent, not my-agent

Expected Behavior

Either:

  • peer.kind: "group" should match public Slack channels (since they are group conversations), OR
  • A config validation warning should be emitted indicating that Slack public channels require peer.kind: "channel"

Actual Behavior

The binding silently fails to match. No logs indicate the mismatch. The message falls through to the default/catch-all binding.

Workaround

Change peer.kind from "group" to "channel" for all Slack public channel bindings.

Environment

  • OpenClaw version: 2026.2.12
  • Channel: Slack (Socket Mode)
  • OS: macOS (arm64)

Notes

This is especially confusing because Slack channels are group conversations conceptually. The peer.kind semantics are not documented for Slack specifically, so "group" is a reasonable first guess. A validation warning at config load time would prevent this silent failure.

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