How to Fix Discord "Error 50013" Missing Permissions Error
What Discord's Error 50013 means
Error 50013 is Discord's way of saying "your bot asked for something and we said no." Under the hood, Discord's API answers with HTTP 403 Forbidden and the JSON body {"message": "Missing Permissions", "code": 50013}. You usually see it in one of two places: a bot developer watching their console fill up with failed requests, or a server member who triggered a bot command — assigning a reaction role, running a moderation command, posting an announcement — and got an error message back instead of the expected result.
The crucial detail is that this is not a connection problem, a broken token, or a Discord outage. The request reached Discord perfectly fine; Discord's permission system simply rejected it. That is actually good news, because it means the fix lives entirely inside your own server's settings. Every 50013 traces back to the same handful of causes — a missing permission on the bot's role, the bot's role sitting too low in the role hierarchy, a channel-specific permission overwrite blocking the bot, or a bot that was invited without the permissions it needs. Work through the steps below in order and the error clears in almost every case.
Common causes
- The bot's role is missing the required permission: every bot action maps to a Discord permission — Manage Roles for assigning roles, Ban Members for bans, Kick Members for kicks, Moderate Members for timeouts, Send Messages for posting, Manage Events for scheduled events. If the bot's role in Server Settings > Roles does not have that exact permission, Discord rejects the request with 50013.
- Role hierarchy: the bot's role sits below its target: Discord requires the acting role to be above the role or member it manages. Even with the right permission toggled on, a bot whose role is at the bottom of the role list cannot assign, edit, or remove higher roles — you get 50013 every time.
- Channel-specific permission overwrites deny it: a channel's own permission overrides can block a bot even when its server-wide role allows the action. A red X on Send Messages in a channel's Permissions tab will trigger 50013 for every post the bot tries to make there.
- The bot was invited without enough permissions: if the OAuth2 invite URL did not include the permissions the bot needs, every privileged command fails until the bot is re-invited with the correct scopes selected.
- Stale permission state after changes: Discord caches permissions, so role changes sometimes do not take effect for the bot until it reconnects or the server cache refreshes. A fix can look like it failed for a few minutes when it actually just has not propagated yet.
How to fix Discord Error 50013 — step by step
Work through these fixes in order. Most Error 50013 cases are fixed by step 2 or 3.
- Identify the failed action and the permission it needs. Match the failed action to the Discord permission it requires. Assigning or removing roles needs Manage Roles; banning needs Ban Members; kicking needs Kick Members; timing out members needs Moderate Members; posting in a locked channel needs Send Messages; managing channels needs Manage Channels; creating scheduled events needs Manage Events. Write down exactly which command or integration step failed — that tells you which single permission to grant instead of guessing.
- Grant the permission on the bot's role. Open Server Settings, go to the Roles tab, and click the bot's role. Switch to the Permissions tab, find the permission you identified in step 1, and toggle it on. Click Save Changes. This is the single most common fix: many bots are added with a bare-bones role and never get the permissions their commands need, so every privileged action comes back as a 50013.
- Move the bot's role above every role it must manage. In Server Settings > Roles, drag the bot's role higher in the list than any role it needs to assign, edit, or remove. For member moderation, the bot's highest role must sit above the target member's highest role. Discord enforces this hierarchy strictly: a bot with the right permission toggled on still gets 50013 when it tries to touch anything above its own position in the list.
- Check channel-specific permission overwrites. A channel's own permission overrides can block a bot even when its server-wide role allows the action. Right-click the channel where the failure happened, choose Edit Channel, and open the Permissions tab. Select the bot's role and make sure the permission you need is not explicitly denied with a red X. Set it to a green check or leave it neutral so the server-wide role permission applies.
- Re-invite the bot with the correct permissions. If the bot was invited without enough permissions, the cleanest fix is a fresh invite. In the Discord Developer Portal, open Applications, select your app, go to OAuth2 and then URL Generator, check the bot scope and the permissions it needs, open the generated URL in a browser, pick your server, and authorize. Only grant Administrator if you fully trust the bot, since that permission bypasses nearly every restriction.
- Let the changes settle, then retest. Permission changes sometimes take a few minutes to take effect on a running bot because of cached permission state. Wait a few minutes, or restart the bot's process or your Discord client, then run the exact command or integration step that failed before. If the error came from an automation like Zapier or Make, re-test the failing step inside that integration so it picks up the new permissions.
Did this fix it? Quick checklist
- The command or integration step that failed before now completes without the error
- The bot's role shows the needed permission enabled in Server Settings > Roles
- The bot's role sits above every role it needs to assign, edit, or manage
- No channel-specific overwrite denies the bot — test in a brand-new channel too
If Error 50013 shows up for a user action rather than a bot — for example, you try to change someone's nickname or post in a restricted channel — the same logic applies to you personally: you either need the permission on your own role or you need a higher role position. Ask a server admin to grant it. Automations deserve a special mention: tools like Zapier and Make connect through their own bot roles, so if your Zap fails with 50013, check the integration's bot role for permissions like Manage Webhooks and Send Messages, and make sure that role sits above any role the automation assigns. And one last edge case: bots can never act on the server owner no matter how high their role is — if the failing action targets the owner, that is by design, not a bug.
Frequently asked questions
What is Discord error code 50013?
Error 50013 is Discord's API rejecting a request with the message "Missing Permissions". It comes back over HTTP 403 Forbidden and means the bot or integration tried to perform an action it is not allowed to do — for example assigning a role, banning a member, or posting in a locked channel without the matching permission. It is purely a permissions problem: the request reached Discord fine, but Discord refused it.
Does error 50013 mean my bot's token is broken?
No. A bad or expired token produces a 401 Unauthorized error, not 50013. Error 50013 specifically means the bot authenticated successfully but Discord's permission checks rejected the action. Do not regenerate your token for this error — focus on the bot's role permissions, its position in the role hierarchy, and any channel permission overwrites.
I gave the bot Administrator but it still gets 50013 — why?
Administrator bypasses nearly every permission check, but the role hierarchy still applies. A bot cannot manage roles or moderate members that sit above its own highest role in the role list, and it can never touch the server owner. If 50013 persists with Administrator granted, drag the bot's role to the top of the list (just under the owner) and test again.
What is the difference between error 50013 and error 50001?
Error 50001 means "Missing Access": the bot cannot even see the server, channel, or resource it is trying to reach. Error 50013 means "Missing Permissions": the bot can see the resource but is not allowed to perform the specific action. Fix 50001 by checking the bot is in the server and has access to the channel; fix 50013 with role permissions, hierarchy, and overwrites.
I'm a regular server member, not an admin — can I fix 50013 myself?
No. Only server administrators (or whoever owns the bot) can change role permissions and the role hierarchy. If you are a regular member seeing 50013, take a screenshot of the exact error and note which command or action failed, then send it to a server admin. The fix takes them only a minute or two in Server Settings.