Privileged intents, and the errors they cause

Discord Bots Reviewed September 6, 2026 2 min read

Discord restricts three kinds of data behind switches you have to turn on yourself. If your code asks for them and the portal has not granted them, the bot refuses to start at all — which is confusing, because nothing about the message mentions a website.

The three privileged intents

IntentYou need it to
GUILD_MEMBERSSee the member list, join and leave events, role changes.
GUILD_PRESENCESSee who is online, playing, or their status.
MESSAGE_CONTENTRead the text of messages that are not commands or mentions.

What to do

  1. Open the Developer Portal

    Your application → Bot. The three toggles are under «Privileged Gateway Intents».

  2. Enable only what you use

    Each one you turn on is data you are responsible for. A bot that only handles slash commands needs none of them.

  3. Declare the same set in your code

    The portal grants; your client requests. They have to agree. Asking for one you were not granted is the crash; being granted one you never ask for is harmless.

  4. Restart the bot

    Intents are negotiated at connection time. A running bot does not pick up a toggle you just flipped.

Past 100 servers, intents need verification

Once a bot is in 100 or more servers, Discord requires it to be verified before privileged intents keep working. That is an application process with a review, not a toggle — worth knowing before you grow into it rather than after.

Used disallowed intents means the portal, not your code

The error names your code because that is where the request came from, but the fix is on the website. Nothing you change in the file will help until the toggle is on.

How to confirm it worked

The bot starts without an intents error and can read the data it was built to read.