openclaw - 💡(How to fix) Fix Discord stale slash commands remain visible when channels.discord.commands.native=false [1 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#63075Fetched 2026-04-09 07:58:54
View on GitHub
Comments
0
Participants
1
Timeline
0
Reactions
0
Author
Participants

When channels.discord.commands.native is set to false, Discord-native slash commands can remain visible/stale in the Discord UI instead of being fully cleared, which creates a confusing broken-command state.

In practice, this looks like:

  • OpenClaw config says native Discord commands are disabled
  • gateway hot-reload/restart succeeds
  • Discord still appears to offer previously registered slash commands
  • invoking them leads to broken behavior rather than a clean disappearance from the UI

This feels distinct from the broader “native slash commands return Done / empty response” regression family because here the expectation is that disabling native commands should remove the commands, not leave stale ghosts behind.

Root Cause

This feels distinct from the broader “native slash commands return Done / empty response” regression family because here the expectation is that disabling native commands should remove the commands, not leave stale ghosts behind.

Code Example

{
  "channels": {
    "discord": {
      "enabled": true,
      "slashCommand": {
        "ephemeral": false
      },
      "commands": {
        "native": false
      }
    }
  }
}

---

config change detected; evaluating reload (channels.discord.slashCommand)
restarting discord channel
config hot reload applied (channels.discord.slashCommand)
[default] starting provider (@Simplificus)
discord client initialized as ...; awaiting gateway readiness
RAW_BUFFERClick to expand / collapse

Description

When channels.discord.commands.native is set to false, Discord-native slash commands can remain visible/stale in the Discord UI instead of being fully cleared, which creates a confusing broken-command state.

In practice, this looks like:

  • OpenClaw config says native Discord commands are disabled
  • gateway hot-reload/restart succeeds
  • Discord still appears to offer previously registered slash commands
  • invoking them leads to broken behavior rather than a clean disappearance from the UI

This feels distinct from the broader “native slash commands return Done / empty response” regression family because here the expectation is that disabling native commands should remove the commands, not leave stale ghosts behind.

Environment

  • OpenClaw: 2026.4.8
  • OS: Linux 6.8.0-106-generic (x64)
  • Node: 24.14.1
  • Channel: Discord

Relevant config:

{
  "channels": {
    "discord": {
      "enabled": true,
      "slashCommand": {
        "ephemeral": false
      },
      "commands": {
        "native": false
      }
    }
  }
}

Steps to Reproduce

  1. Run OpenClaw with Discord enabled and native commands previously available/registered.
  2. Set channels.discord.commands.native to false.
  3. Let OpenClaw hot-reload or restart the Discord channel.
  4. Observe Discord command availability in the client UI.
  5. Try invoking a previously visible slash command.

Expected Behavior

When channels.discord.commands.native=false:

  • previously registered native commands should be cleared from Discord cleanly
  • users should no longer see those commands in the Discord slash command picker
  • there should not be a stale “broken command” UX after disabling native commands

Actual Behavior

  • the gateway reload path appears healthy
  • Discord reconnect succeeds
  • but stale/previously known commands may still remain visible in the client, creating the impression that slash commands are still enabled when they are not

Relevant Logs

Hot reload / reconnect looked normal:

config change detected; evaluating reload (channels.discord.slashCommand)
restarting discord channel
config hot reload applied (channels.discord.slashCommand)
[default] starting provider (@Simplificus)
discord client initialized as ...; awaiting gateway readiness

Gateway health was otherwise fine, and local status tooling worked normally.

Notes

The docs explicitly say native commands should be cleared when disabled:

commands.native=false explicitly clears previously registered Discord native commands.

So if stale commands remain visible after disable + reload/restart, that seems like a bug in command undeploy/cleanup or Discord-side reconciliation behavior.

This may be related to the Carbon reconcile migration, but I’m filing it separately because the user-facing failure mode is specifically about disabled native commands not disappearing cleanly.

extent analysis

TL;DR

Disable and then re-enable the Discord channel to force a full refresh of the command list after setting channels.discord.commands.native to false.

Guidance

  • Verify that the channels.discord.commands.native setting is correctly applied by checking the OpenClaw configuration after the hot-reload or restart.
  • Check the Discord API documentation to ensure that the expected behavior of clearing native commands when commands.native is set to false is correctly implemented in OpenClaw.
  • Test the scenario with a different Discord channel or server to isolate if the issue is specific to the current environment.
  • Review the OpenClaw code responsible for handling the commands.native setting and Discord command registration to identify potential issues with command undeploy/cleanup or Discord-side reconciliation behavior.

Example

No specific code example is provided as the issue seems related to the interaction between OpenClaw and the Discord API, and the exact implementation details are not specified in the issue.

Notes

The issue might be related to the Carbon reconcile migration, but further investigation is needed to confirm this. Additionally, the Discord API and OpenClaw documentation should be reviewed to ensure that the expected behavior is correctly implemented.

Recommendation

Apply the workaround of disabling and then re-enable the Discord channel to force a full refresh of the command list after setting channels.discord.commands.native to false, as this may help to clear the stale commands and achieve the expected behavior.

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