Discord breaking changes, updated weekly
Every verified Discord trap in Footgun: changes and behaviors that break code or give wrong results, newest first. Each one has the error you see, the fix, and the date it was last checked. The list updates when the weekly check adds or retires a trap. For the full cause and sources, open the trap, or see all Discord traps.
fg-0441· added 2026-10-15· last checked 2026-10-15
Discord bot gets temporarily blocked by Cloudflare after a loop of 401, 403 or 429 responses
Symptom
Every request fails for a while, including to unrelated routes
Fix
Stop calling a webhook after a 404, check permissions before calling, and back off on 429 using retry_after and the X-RateLimit-Scope header instead of retrying at once.
fg-0443· added 2026-10-15· last checked 2026-10-15
Discord bot suddenly fails to log in after its token was pushed to a public GitHub repo or gist
Symptom
Gateway closed with code 4004 Authentication failed
Fix
Reset the token in the Developer Portal, store it as a deploy secret, and scrub it from git history. Enable push protection on the repository.
fg-0444· added 2026-10-15· last checked 2026-10-15
Discord bot that echoes user text pings @everyone or whole roles
Symptom
Bot message relaying user input notifies the entire server
Fix
Pass allowed_mentions with an empty parse list on any message that contains text you did not write, and list specific user IDs only when a ping is intended.
fg-0448· added 2026-10-15· last checked 2026-10-15
Discord rejects a message with several embeds even though each embed is under its own limits
Symptom
400 Bad Request with DiscordAPIError[50035]: Invalid Form Body on a multi-embed message
Fix
Sum the text of every embed before sending and spill over into another message when the total passes 6000.
fg-0450· added 2026-10-15· last checked 2026-10-15
Discord slash command deploy hangs or never updates after registering commands on every bot start
Symptom
Max number of daily application command creates has been reached (200)
Fix
Register commands from a separate deploy script run only when commands change, using the bulk overwrite PUT so unchanged commands do not count as new creates. Note that bulk PUT replaces the whole list.
fg-0452· added 2026-10-15· last checked 2026-10-15
Discord webhook call returns 204 with no body so the message ID is never available
Symptom
204 No Content from POST /webhooks/{id}/{token}
Fix
Add wait=true to the query string when you need the created message or need to know the send failed.
fg-0438· added 2026-10-15· last checked 2026-10-15
Creating a Discord webhook named after the product fails because the name contains discord
Symptom
DiscordAPIError[50035]: Invalid Form Body on create webhook
Fix
Pick a name without those substrings and validate user-supplied names before calling the API.
fg-0439· added 2026-10-15· last checked 2026-10-15
Discord bot can send messages in a channel but gets Missing Permissions when replying
Symptom
DiscordAPIError[50013]: Missing Permissions on message.reply()
Fix
Grant Read Message History to the bot role or channel overwrite, or fall back to channel.send when the permission is missing.
fg-0440· added 2026-10-15· last checked 2026-10-15
Discord bot crashes on login with Used disallowed intents or close code 4014
Symptom
Gateway closed with code 4014
Fix
Switch the matching toggles on under Bot > Privileged Gateway Intents in the Developer Portal, or remove those intents from the client. Verified apps in 100 or more servers need Discord approval first.
fg-0446· added 2026-10-15· last checked 2026-10-15
Discord followup sent as ephemeral is visible to everyone after a deferred reply
Symptom
Reply meant only for the user shows up publicly in the channel
Fix
Set the ephemeral flag on the deferral itself.
fg-0442· added 2026-10-15· last checked 2026-10-15
Discord bot receives messages with an empty content string and no embeds or attachments
Symptom
message.content is an empty string for messages from other users
Fix
Turn on Message Content Intent in the Developer Portal and also request the intent in code. Apps in 100 or more servers must be verified and approved for it.
fg-0445· added 2026-10-15· last checked 2026-10-15
Discord bot throws Interaction has already been acknowledged after deferReply
Symptom
DiscordAPIError[40060]: Interaction has already been acknowledged
Fix
After deferReply or reply, use editReply or followUp. Check interaction.deferred or interaction.replied in shared error handlers.
fg-0447· added 2026-10-15· last checked 2026-10-15
Discord guild member list holds only a handful of users and fetching all members times out
Symptom
guild.members.cache.size is far below the server's member count
Fix
Enable Server Members Intent in the portal and request GuildMembers in code before fetching members. Prefer fetching the specific members you need over loading every member.
fg-0449· added 2026-10-15· last checked 2026-10-15
Discord send fails with Invalid Form Body when the message is longer than 2000 characters
Symptom
DiscordAPIError[50035]: Invalid Form Body
Fix
Split long text into chunks of at most 2000 characters, or send it as a file attachment.
fg-0451· added 2026-10-15· last checked 2026-10-15
Discord slash command shows The application did not respond and the bot logs Unknown interaction
Symptom
The application did not respond
Fix
Defer as the very first awaited call, do the work, then edit the reply. The token stays valid for 15 minutes for edits and followups.
Have your agent check Discord changes before it codes