Discord Bot Slash Command Not Showing Up: Cache and Sync Fix
🔍 WiseChecker

Discord Bot Slash Command Not Showing Up: Cache and Sync Fix

You invited a bot to your Discord server, but its slash commands do not appear when you type a forward slash. This happens when the Discord client cache still holds stale permission data or when the bot has not been granted the correct application command scopes. The slash commands exist on Discord’s servers, but your client or the server’s permission settings block them from showing up.

The root cause is usually one of three things: the Discord client cached an outdated permission list, the bot does not have the applications.commands scope enabled for the server, or a specific channel or role permission is missing. This article walks you through clearing the client cache, resyncing the bot’s commands, and verifying the correct server settings so slash commands appear immediately.

Key Takeaways: Discord Bot Slash Command Cache and Sync Fix

  • Ctrl+R or Cmd+R in Discord: Forces a full client reload that refreshes the command cache instantly.
  • Discord Developer Portal > Applications > Bot > OAuth2 URL Generator: Ensures the bot has the applications.commands scope enabled when re-inviting.
  • Server Settings > Roles > Manage Permissions: Grants the Use Slash Commands permission to the bot and users.

Why Discord Bot Slash Commands Do Not Appear

Discord stores slash command definitions on its servers, not on your computer. When you type a forward slash in a text channel, the client requests the list of available commands from Discord’s API. If the client’s local cache contains an outdated permission snapshot, the API response may be filtered incorrectly. The bot’s commands exist, but the client thinks you do not have permission to see them.

The second common cause is that the bot was invited without the applications.commands scope. This scope is required for the bot to register slash commands in your server. Without it, the bot can join the server but cannot create or expose any slash commands. You must re-invite the bot with the correct scope.

The third cause is role or channel permission overrides. Even if the bot has the correct scope, a specific role or channel may have the Use Slash Commands permission set to off. This blocks all slash commands for that role or channel, including the bot’s commands.

Steps to Clear the Client Cache and Resync Commands

Follow these steps in order. After each step, test by typing a forward slash in any text channel where the bot has access.

  1. Force Reload the Discord Client
    Press Ctrl+R on Windows or Cmd+R on macOS while the Discord window is active. This reloads the entire client and clears the in-memory cache. After the reload, type a forward slash in a text channel to see if the commands appear.
  2. Clear the Discord Cache Files
    If the reload did not work, close Discord completely. Open File Explorer and navigate to %appdata%\discord\Cache. Delete all files inside the Cache folder. Also delete files inside %appdata%\discord\Code Cache and %appdata%\discord\Local Storage. Restart Discord. This forces the client to download fresh permission and command data from Discord’s servers.
  3. Re-invite the Bot with the Correct Scope
    Go to the Discord Developer Portal and select your bot’s application. Click OAuth2 in the left sidebar, then click URL Generator. Under Scopes, check bot and applications.commands. Under Bot Permissions, choose the permissions the bot needs (for example, Send Messages, Read Message History, Use Slash Commands). Copy the generated URL, open it in a new tab, and invite the bot to your server again. This ensures the bot has the scope to register slash commands.
  4. Verify the Bot Has the Use Slash Commands Permission
    In your server, go to Server Settings > Roles. Find the role assigned to the bot (often the bot’s own role or @everyone). Click the role, scroll to General Permissions, and ensure Use Slash Commands is enabled (green check). If it is disabled, enable it and save. Repeat for any channel-specific overrides: right-click the channel, go to Edit Channel > Permissions, find the bot role, and verify Use Slash Commands is enabled.
  5. Resync the Bot’s Commands Manually
    Some bots require a manual command sync. Check the bot’s documentation for a sync command, often written as /sync or /deploy. If the bot uses Discord.js or Pycord, the bot owner can run a command in the bot’s console to register global commands again. For example, a Discord.js bot can call client.application.commands.set([]) then re-register the commands. After resyncing, wait up to one hour for global commands to propagate, or use guild commands for instant updates.

If Discord Bot Slash Commands Still Do Not Show Up

Bot Commands Appear for Me but Not for Other Users

This usually means the bot’s slash commands are set as global commands, which can take up to one hour to propagate to all users. Alternatively, the other users may have a role that blocks Use Slash Commands. Check the role permissions for each affected user. Also ask them to press Ctrl+R or Cmd+R to reload their client.

Slash Commands Work in One Channel but Not Another

Channel-specific permission overrides are the cause. Right-click the channel where commands do not work, go to Edit Channel > Permissions, find the bot role or @everyone, and enable Use Slash Commands. If the channel is a private thread, ensure the bot has access to the parent channel and the thread itself.

Bot Does Not Respond After Typing the Slash Command

The command appears in the menu but nothing happens when you press Enter. This indicates the bot’s code has an error or the bot is offline. Check if the bot is online in the member list. If it is offline, the bot host needs to restart the bot process. If the bot is online but unresponsive, the bot developer must check the console for errors, often related to missing intents or a failed command handler.

Item Global Commands Guild Commands
Update speed Up to 1 hour Instant
Scope All servers the bot is in Single server only
Best for Public bots used in many servers Testing or private bots
Cache dependency Client cache may delay visibility Client cache less likely to block

You now have a clear set of steps to fix slash commands that do not show up: clear the client cache with Ctrl+R or by deleting cache files, re-invite the bot with the applications.commands scope, and verify the Use Slash Commands permission on roles and channels. If the problem persists, check whether the bot uses global or guild commands and resync them manually. For bot developers, using guild commands during development eliminates the one-hour propagation delay and makes testing faster.