Articles on: Bots & Applications
This article is also available in:

Bot not reading messages? Enable the Message Content Intent

The symptom: bot online, but "mute"


Your bot shows up online on Discord, maybe even responds to slash commands (/slash), but simply ignores regular text messages? Most of the time the reason isn't a bug in your code — it's a setting called Privileged Intents that is disabled.


What Intents are


Intents are "event permissions" that tell Discord which information your bot wants to receive. Instead of sending everything, Discord only sends the events your bot declares it needs — this saves resources and protects user privacy.


Some intents are considered Privileged (privileged) because they give access to sensitive data:


  • Message Content Intent — required to read message content.
  • Server Members Intent — required to receive the member list.
  • Presence Intent — required to see status and presence.


Why your bot isn't reading messages


Since 2022, the Message Content Intent became privileged. Without it enabled, the content field of messages arrives empty — that's why the bot doesn't "see" what was written.


How to enable the Message Content Intent


  1. Go to the Discord Developer Portal and open your application.
  2. Go to Bot in the side menu.
  3. Scroll to Privileged Gateway Intents.
  4. Enable Message Content Intent (and the others your bot needs).
  5. Save the changes.


Declare the intents in your code too


Enabling it in the portal isn't enough: you also need to declare the intents in your code.


discord.js:

const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
],
});


discord.py:

import discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)


Discord verification (around 100 servers)


While your bot is in fewer than 100 servers, you enable the Privileged Intents (like the Message Content Intent) yourself in the Developer Portal, with no approval needed.


From around 75 servers you can request your bot's verification, and it becomes mandatory once you reach 100 servers — without it, the bot can't join new servers. It's during this verification process that Discord reviews and approves the use of Privileged Intents at scale.


Diagnostic checklist


  • Message Content Intent enabled in the Developer Portal?
  • Intent declared in the code?
  • Correct token and bot restarted after the change?


If the bot still doesn't respond after deploy, confirm it's actually online — see How to host a Discord bot to make sure hosting is correct.

Updated on: 07/02/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!