Skip to Content
Haven Documentation is the shared home for product guides, plugin setup, and release docs.
PluginsReactionRolesTroubleshooting

Troubleshooting

The Panel Does Not Send

Check:

  • config.enabled is true.
  • channel_id is a real text/forum-compatible channel ID.
  • The bot can send messages and embeds in the channel.
  • The dashboard API is connected if you are sending from the dashboard.
  • Run /reactionroles resend panel:<name> to force a fresh panel.

The Bot Cannot Assign A Role

Most role assignment problems are Discord hierarchy issues.

Check:

  • The bot has Manage Roles.
  • The bot’s highest role is above every self-assignable role.
  • role_hierarchy_check is enabled so the plugin blocks unsafe assignments.
  • The role ID still exists.
  • The target role is not managed by another integration.

Users Hit The Max Role Limit

If max_roles_per_user is 0, there is no limit. If it is greater than 0, users can only hold that many roles from the panel.

To bypass the limit for staff, add staff role IDs to permission_bypass_roles.

Reaction Roles Do Not Work

Check:

  • The panel type is REACT or MIXED with reactionEmojis.
  • The bot added the reactions to the panel message.
  • The bot has Add Reactions and Read Message History.
  • If auto_remove_user_reactions is enabled, the bot also needs Manage Messages.
  • The reaction emoji exactly matches the configured emoji.

Select Menu Does Not Show All Options

Discord select menus support up to 25 options. Split large role sets into:

  • multiple panels
  • sub-panels
  • buttons plus select menus
  • a MIXED panel with chained sub-panels

Buttons Are Missing

Discord allows a maximum of 5 rows per message and 5 buttons per row. If a panel has too many buttons, the plugin limits what can be rendered. Use select menus or sub-panels for large role sets.

Duplicate Panels Appear

Use /reactionroles resend panel:<name> for a specific panel, or clear stale panel records if the database points to deleted or replaced messages. The plugin normally verifies stored message IDs on startup and re-sends only when needed.

Dashboard Changes Do Not Apply

If the dashboard stores config in MongoDB, editing the local configuration/reactionroles.json5 file may not update the live plugin. Save through the dashboard and restart AthenaBot if needed.

Logs Are Not Sent

Check:

  • log_role_changes is true.
  • log_channel contains a real channel ID.
  • The bot can send embeds in the log channel.
  • Role changes are actually happening.