Why isn't the bot assigning the role?

Almost always because the role you sell sits above flatpass's own role in your server's role list — Discord only lets a bot assign roles below its own. The fix is one drag: Server Settings → Roles, move flatpass above it.

The fix

  1. Open Server Settings → Roles. In Discord, on the server itself.
  2. Drag flatpass above the role you sell. Level counts as below, so put it clearly above rather than alongside. Your dashboard's Discord bot card names both roles — the one that is blocked, and the flatpass role to move — which matters if your server has more than one role by that name.
  3. Do nothing else. Members who already paid and were waiting get their role automatically once the hierarchy is right. Nobody needs to buy again and nothing needs refunding.

The re-grant runs twice over: the bot notices the role move itself and repairs the memberships that failed, and opening your dashboard runs the same sweep. Both are limited to the exact role a grant failed on, so ordinary role admin costs nothing.

Why it happens at all

Discord creates a bot’s own role at the bottom of the role list when the bot is installed, and it will not let a bot hand out a role that sits at or above its own. So a server whose paid role already existed — made before flatpass was installed — starts out in exactly this state, and nothing in Discord warns you. flatpass won’t let you publish a tier on a role it cannot grant, and tells you which role to move.

If the role list is already right

The dashboard’s Discord bot card tells these apart, and each has its own fix:

Missing permission. The bot’s role has lost Manage Roles — an admin can edit a bot’s role after the install, and Discord does not tell us. Re-inviting the bot grants it back.

The role is gone. A role deleted in Discord cannot be granted, and re-creating one with the same name mints a new role that the tier still does not point at. Nothing about the hierarchy fixes this one.

The member isn't in the server. Somebody can buy from a shared link without joining first. flatpass adds them, which is what the Create Invite permission is for; if that permission has been removed, the dashboard says so and the buyer is turned away rather than charged for nothing.

A member who is waiting can also run /membership in your server: it re-applies the role on the spot once the cause is fixed.

Related