Discord error 30001: Maximum number of guilds reached (100)
Last verified against Discord Developer Docs - Opcodes and status codes
Maximum number of guilds reached (100)What error 30001 means
The account attempting to join a guild is already in 100 servers, which is the cap for a normal user account. For bot developers this code has two faces. If you are using OAuth2 guilds.join to add a user to your server, the user has hit their personal 100-server cap and cannot be added until they leave one. If the bot itself is being added, 100 is the threshold at which an unverified application can no longer be invited to new servers.
The second case is the one that catches people. Bot applications that have not been through Discord's verification process are limited to roughly 100 servers. Past that point, the invite flow fails for new servers. Verification is started from the Developer Portal and, once approved, also unlocks privileged intents for apps over the user threshold (see 4014).
Verification is the way past the cap for bots. It is started from the Developer Portal (your application's page prompts for it as you approach the limit), and it involves identity verification for the owner plus a questionnaire about what the bot does and what data it needs. Until it is approved, invites to a 101st server fail with this code, so growth simply stops; after approval, the guild cap lifts. Privileged intents run on a separate but related track: they can be toggled freely while the app is small, and require per-intent approval once the app passes the review threshold of more than 10,000 unique users, the failure mode for which is gateway close 4014 rather than this REST error. Plan both reviews together, because a bot that crosses 100 servers is usually approaching the intent threshold too.
What it looks like
{
"message": "Maximum number of guilds reached (100)",
"code": 30001
}Why it happens
- OAuth2 guilds.join target user is already in 100 servers
- Unverified bot application trying to join its 101st server
- Invite link used by the bot's own user account rather than through the bot authorize flow
How to fix Discord error 30001
- 1For guilds.join: tell the user to leave a server, or skip the add and show them an invite link instead
- 2For bots approaching 100 servers: begin the verification process in the Developer Portal well before you hit the cap
- 3Check the current guild count with GET /users/@me/guilds (paginate with limit=200 and after=) to know where you stand
- 4While waiting for verification, remove the bot from dead test servers to stay under the limit
How to stop it recurring
Track guild count on every GUILD_CREATE and alert yourself at 75 so verification paperwork (privacy policy, description of data use, identity check) is done before growth stalls. Keep a separate development application for testing so test servers never count against the production bot.
The unverified-app guild cap sits alongside the privileged-intent review threshold on the Discord limits page, and the "100-server wall" section of Discord bot not responding covers how to time the application.
Official reference: Discord Developer Docs - Opcodes and status codes. See all Discord error codes or the Discord limits and quotas.
Related codes
Error 30001 - quick answers
What does Discord error 30001 mean?
The account attempting to join a guild is already in 100 servers, which is the cap for a normal user account. For bot developers this code has two faces. If you are using OAuth2 guilds.join to add a user to your server, the user has hit their personal 100-server cap and cannot be added until they leave one.
How do I fix Discord error 30001?
1. For guilds.join: tell the user to leave a server, or skip the add and show them an invite link instead 2. For bots approaching 100 servers: begin the verification process in the Developer Portal well before you hit the cap 3. Check the current guild count with GET /users/@me/guilds (paginate with limit=200 and after=) to know where you stand 4. While waiting for verification, remove the bot from dead test servers to stay under the limit
Stop debugging Discord by hand
Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.