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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. 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.

  14. 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.

  15. 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

$ /plugin marketplace add getfootgun/footgun
$ /plugin install footgun@footgun