Your Discord moderation bot suddenly stops kicking, banning, or muting certain members. You check the bot’s permissions and they look correct. The problem is not the permissions themselves but Discord’s role hierarchy system. This article explains why role hierarchy blocks bot moderation actions and how to fix it by adjusting role positions.
Key Takeaways: Fixing Discord Role Hierarchy for Bot Moderation
- Server Settings > Roles > Drag to reorder: Move the bot’s role above the roles of members it must moderate.
- Role hierarchy rule: A bot can only moderate members whose highest role is below the bot’s highest role in the list.
- Administrator permission bypass: Granting Administrator to the bot is not recommended but does bypass role hierarchy entirely.
Why Discord Role Hierarchy Blocks Bot Moderation
Discord uses a strict role hierarchy to control who can moderate whom. Every role in a server is positioned in a vertical list. A role that appears higher in the list can manage roles and members that are below it. This rule applies to bots exactly as it applies to human users.
When a moderation bot tries to kick a member, Discord checks two things. First, it checks if the bot has the required permission, such as Kick Members. Second, it checks if the bot’s highest role is positioned above the target member’s highest role. If the bot’s role is lower or equal in the list, the action fails silently or returns an error.
The technical root cause is that Discord enforces role hierarchy at the API level. The bot receives an HTTP 403 Forbidden response when it attempts an action against a member with a higher or equal role. Most bots log this error as a missing permission, even when the permission is correctly assigned.
How Role Position Is Determined
Role position is the numeric order of a role in the server’s role list. The topmost role has position 1, the next has position 2, and so on. Discord displays roles from highest to lowest in Server Settings > Roles. You can drag roles up or down to change their position.
The @everyone Role Trap
The @everyone role is always at the bottom of the hierarchy. You cannot move it up. If a bot’s role is below @everyone, it cannot moderate anyone. Always ensure the bot’s role is above @everyone in the list.
Steps to Fix Bot Moderation Blocked by Role Hierarchy
- Open Server Settings
Right-click your server icon in the channel list and select Server Settings. If you do not see this option, you do not have the Manage Server permission. - Go to the Roles tab
In the left sidebar, click Roles. You will see a list of all roles on your server, sorted from highest to lowest. - Identify the bot’s role
Find the role assigned to your moderation bot. If the bot has multiple roles, note the highest one in the list. The bot’s effective hierarchy is determined by its highest-positioned role. - Identify the target member’s highest role
Click a member the bot cannot moderate. In the member popup, look at the roles listed under their name. The role that appears first is their highest role. - Drag the bot’s role above the target’s role
Go back to the Roles tab. Click and hold the six-dot icon to the left of the bot’s role name. Drag it upward so it appears above the target member’s highest role. Release the mouse to save the new position. - Test the bot’s moderation action
Ask the bot to kick or mute the target member in a test channel. If the action succeeds, the hierarchy fix is complete. If it still fails, repeat the check for other roles the bot or the target member may have.
Alternative: Create a Dedicated Bot Role
Some server admins create a new role named Bot Moderation and position it just below the admin role. They assign this role to the bot and remove all other roles from the bot. This approach makes hierarchy management simpler because you only need to track one role per bot.
Alternative: Grant the Administrator Permission
The Administrator permission bypasses role hierarchy entirely. A bot with Administrator can moderate any member regardless of role position. Do not use this option unless you fully trust the bot. A compromised bot with Administrator can destroy your server.
If the Bot Still Cannot Moderate After Reordering Roles
Bot Has Multiple Roles and One Is Still Too Low
Discord uses the bot’s highest role for hierarchy checks. If the bot has multiple roles, check the one that appears highest in the list. Move that role above the target member’s highest role. Other roles the bot has do not matter for hierarchy purposes.
Target Member Has a Role That Cannot Be Moved
Some roles, such as the server owner’s role, are fixed at the top. The server owner is always above every role. No bot can moderate the server owner. If you need to moderate an admin, ask the server owner to demote that admin temporarily.
Bot’s Permission Was Removed During Role Reorder
When you drag a role, Discord does not change its permissions. However, if you accidentally edited the role while reordering, the bot may have lost a required permission. Go to the bot’s role and verify that Kick Members, Ban Members, or Mute Members is enabled.
| Item | Role Hierarchy Fix | Administrator Permission |
|---|---|---|
| Security risk | Low — only affects moderation scope | High — gives full server control to the bot |
| Setup complexity | Moderate — requires dragging roles | Low — one checkbox in role settings |
| Scope of moderation | Can moderate members below the bot’s role | Can moderate all members including the owner |
| Best for | Servers with clear role hierarchy | Trusted self-hosted bots only |
Now you understand how Discord role hierarchy affects bot moderation. Start by moving the bot’s role above the roles of members it needs to moderate. Avoid granting Administrator unless absolutely necessary. For ongoing maintenance, review your role list whenever you add new roles to the server.