openclaw - 💡(How to fix) Fix Slash command cross-routing when multiple Apps register same commands [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#74343Fetched 2026-04-30 06:25:18
View on GitHub
Comments
1
Participants
2
Timeline
1
Reactions
2
Timeline (top)
commented ×1

Fix Action

Fix / Workaround

Gateway logs show all slash commands dispatched as agent:main:slack:slash:*, suggesting the Gateway always routes to the main agent's slash handler regardless of which App/channel received the command.

RAW_BUFFERClick to expand / collapse

Bug Description

When multiple Slack Apps in the same workspace register identical slash commands (e.g. /model, /help, /config), the Gateway exhibits cross-routing: slash commands invoked in one agent's channel are handled by a different agent.

Environment

  • OpenClaw version: 2026.4.26 (be8c246)
  • Server: Debian, 2C/1.6GB RAM
  • Slack Apps: 17 apps, each mapped to a dedicated agent via Socket Mode
  • commands.native: true in openclaw.json
  • Slash commands registered on 2 apps: App-A (agent: main) and App-B (agent: operations)

Steps to Reproduce

  1. Register the same 42 slash commands on two Slack Apps (App-A for main agent, App-B for operations agent) via Manifest API
  2. Set commands.native: true in openclaw.json and channels.slack.commands.native: true
  3. Restart Gateway
  4. In Channel-A (where App-A / main agent is the resident bot), type /model
  5. In Channel-B (where App-B / operations agent is the resident bot), type /model

Expected Behavior

ChannelAutocomplete showsResponder
Channel-A (main)App-AApp-A (main agent)
Channel-B (operations)App-BApp-B (operations agent)

Actual Behavior

ChannelAutocomplete showsResponder
Channel-A (main)App-A ✅App-B (operations)
Channel-B (operations)App-AApp-B (operations) ✅

Two cross-errors:

  1. Autocomplete picks wrong App: Channel-B shows App-A's commands instead of App-B's
  2. Response routed to wrong agent: In Channel-A, the operations agent responds instead of main

Gateway logs show all slash commands dispatched as agent:main:slack:slash:*, suggesting the Gateway always routes to the main agent's slash handler regardless of which App/channel received the command.

Additional Context

  • This may be related to Slack's recent change in slash command visibility (channel-scoped filtering, around late April 2026)
  • When only App-A has slash commands registered (App-B's removed), the autocomplete issue is resolved, but the cross-routing of the responder may still persist
  • Reinstalling apps in different orders changes which app "wins" command ownership on the Slack side, but doesn't fix the Gateway-side cross-routing
  • Slack system messages confirm command ownership transfer between apps when the same command is registered by multiple apps
  • The commands.native: true configuration is required (Slack auto mode is disabled by the platform)

extent analysis

TL;DR

The Gateway's cross-routing issue may be resolved by implementing a unique identifier for each slash command or modifying the openclaw.json configuration to handle command ownership.

Guidance

  • Verify that the commands.native: true configuration is correctly set in openclaw.json and channels.slack.commands.native: true to ensure native command handling is enabled.
  • Investigate the possibility of using a unique identifier for each slash command to prevent conflicts between App-A and App-B.
  • Review the Gateway logs to confirm that the issue is related to the agent:main:slack:slash:* dispatch pattern and not a separate configuration issue.
  • Consider testing with a single app registering slash commands to isolate the issue and determine if it's related to the Slack platform changes or the Gateway configuration.

Example

No code snippet is provided as the issue seems to be related to configuration and platform interactions rather than a specific code implementation.

Notes

The issue may be related to Slack's recent changes in slash command visibility, and further investigation is needed to determine the root cause. The provided information suggests a potential conflict between App-A and App-B due to identical slash command registrations.

Recommendation

Apply a workaround by implementing unique identifiers for each slash command or modifying the openclaw.json configuration to handle command ownership, as the root cause of the issue is still uncertain and may require further investigation.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix Slash command cross-routing when multiple Apps register same commands [1 comments, 2 participants]