acrO

Discord bot not giving roles? Check permissions and role order

Reviewed against Discord documentation ·

Quick answer

Start with Manage Roles and the role order. The bot’s highest role must sit above the role it should give. Administrator does not remove that hierarchy limit.

1. Check the permission on the bot’s role

Open Server Settings → Roles and select the bot’s role. Check Manage Roles, then save. If you cannot edit that role, ask a server administrator. Changing your own permissions does not grant the bot the same permissions.

2. Put the bot above the reward role

For example, a safe order is Moderator → Bot → Level 5 → Member. The bot can then give Level 5 without being above Moderator. If Level 5 sits above Bot, granting Manage Roles alone will not fix it. Use the bot’s highest role when checking this order.

3. Make sure the target role can be assigned

Choose a normal server role. Do not choose @everyone, another app’s managed role, or a subscription-managed role. If a configured role was deleted and recreated, select the new role in the bot settings: the same name does not mean the same role ID.

4. Check the rule that should give the role

For reaction roles, verify the message and role mapping. For verification, check that the correct panel is being used. For level rewards, confirm the required level and whether the bot applies rewards to members who already passed it. A correct permission setup does not trigger a rule by itself.

5. Retest with one ordinary member

Ask a consenting member to try the relevant action once. Confirm the role appears in their profile, then check the bot’s response and audit log if it does not. If the role appears and disappears, look for another bot or rule removing it. Record the exact error without sharing tokens.

These Discord permission rules apply whether you use acrO, MEE6, Dyno or Carl-bot. Their configuration menus and reward behavior differ; follow the documentation of the bot you use.

Official references