#github-notifications
1 messages · Page 17 of 1
The users do have MFA enabled and it happens both in guilds that do or don't have MFA requirement enabled. We confirmed this behavior with several different users, several different user-installed apps and several different accounts.
Thanks for the detailed investigation!
That matches my issue exactly — GIFs work correctly when used on normal user profiles,
but bot avatars or banners uploaded via the Developer Portal get corrupted.
This definitely looks like a Developer Portal upload/encoding bug.
I just attempted to update my Bot banner to align with the holidays, Animated WebP's are Static in the portal.
What I'm assuming a broken Transparency Optimizer, Ive re-exported this GIF in different compressions, mattes and sizes over and under 10mb all the way down to 1mb and the same result occurs.
All Dark pi...
I couldn't reproduce the issue with guilds that don't require MFA.
You mentioned that this issue only occurs with the user app installation, but I was able to reproduce it without the user app installation.
It looks like this is more complicated than I thought initially. I just tested on the official Discord Developers guild and the permissions requiring MFA show for half of the moderators there, while they are missing for the other half. So it's neither about the guild requiring MFA nor just about it being a user-installed app.
[discord/discord-api-docs] New comment on pull request #8047: Add changelog for Social SDK 1.8.13395
Preview:
<img width="1195" height="626" alt="image" src="https://github.com/user-attachments/assets/55bfa776-2e25-469c-93b6-7af0b12661ba" />
Preview:
<img width="1124" height="383" alt="image" src="https://github.com/user-attachments/assets/87dd4d7a-08b8-4964-af78-1cb67f11d77c" />
Update terminology from "Rate Limit Removal" to "Increased Rate Limits for Production Releases" to more accurately reflect that rate limits are increased rather than completely removed.
Preview:
<img width="1123" height="701" alt="image" src="https://github.com/user-attachments/assets/5216e870-db14-4651-b719-c49e2147db8d" />
load bearing anchor tag. Works mostly.
I don't think this is load bearing, but just being safe.
Should we add links to Account Linking, Linked Channels, and Invite best practices/docs in that warning to better communicate each of those features?
I know this isn't you and it looks like it correctly shows as a 4. but this 5. is bugging me 🤣
We could - it would just change the warning across the site -- which is not necessarily a bad thing.
I just don't want to change the wording at all.
1af65ce Add changelog for Social SDK 1.8.13395 (#8047) - markmandel
2f56fa1 Social SDK: Rename rate limit removal to increa... - markmandel
I could go either way on it, if you feel strongly I think linking to the dev guides without changing wording could be useful but it seems reasonable as is
202fe7b Add Sony callout to console design guidelines (... - markmandel
I am building a website that uses the Discord OAuth API to allow users to log in with Discord. My users expect that if they log in with Discord, they should be able to connect with each other on Discord as well. Essentially, they are asking me to build a button on their profile that says “DM me on Discord”. If a user who is logged in with Discord views the profile of another user who is logged in with Discord, they should see this button, and clicking on it should redirect the current user to...
Update on the ongoing 404 issue
I have done all testing and benchmarking to rule out a local I/O bottleneck or late response at this point. Here is what my current findings have gotten me:
- Response Latency: My bot consistently responsds to the initial POST request within 10-200ms of the interaction being created by Discord (confirmed from the timestamp provided in the JSON data from Discord's POST request
- Followup Delay: I have tested adding intentional delays of 0.5s, 1s and 2...
Hey. While I don’t think it’s documented, your app can DM users whom have authorized your app for a user install.
https://discord.com/developers/docs/resources/application#user-context
Should work with no shared guilds.
The CreateRoleRequest schema is missing the colors field (which replaced color).
See Create Guild Role.
This field is there
<img width="1060" height="488" alt="Image" src="https://github.com/user-attachments/assets/2088cd85-a9dd-45ed-a3ff-688e2cc6e169" />
@vakiliner yes, that is why I linked the docs. It's missing here.
Currently, discord seems to only process a single activity field, even if one of those fields is a custom status while the other is for rich presence, despite that user accounts do support both the user's current status and in the pop out you can see their current activity via rich presence, but because discord doesn't process custom status's and rich presence, bots cannot do this.
Despite not being able to do so, you can still send the gateway an array of activities, it will just silently...
you can use the endpoint below with OAuth2 applications.entitlements scope to check if someone who authorized your app actually has access to the bot, like if they're the owner. I'm using this method in a live app right now, so if anyone's curious you can check out the source code
https://discord.com/api/v10/applications/{botId}/entitlements
https://github.com/discordplace/discord.place/blob/main/server/src/utils/bots/isUserBotOwner.js
Oops, I thought this was the discord-api-docs repository
This doesn't make sense to me. This endpoint just lists entitlements for a bot. You mean, if you are trying to access the endpoint and the owner has not granted access, then it would return an error status code?
This endpoint throws an error if the access token owner isnt the owner (or in team) the bot. idk if there's another way for a user to verify bot ownership but this is the method I found and it just works.
aaaah makes sense. thanks.
Still, this is a workaround - a good one. btw do you know what happens if the app doesn't have any SKUs?
it doesn't matter if there's an SKU or not, all that matters is whether they can access the resource
Hello Discord API Team,
I wanted to suggest an update to the Apply-to-Join system. Right now, when someone applies to join a server, they don’t show up as a guild member until an admin manually approves them. Because of that, bots can’t fetch the user, can’t receive a member add event, and can’t interact with their application at all. This makes it impossible for bots to help with screening or automating any part of the approval process.
It would be really helpful if bots had a wa...
Consider allowing the ActionRow itself to take full container width and optionally distribute remaining space among buttons and select menus, instead of limiting layout strictly to component-level min and max widths.
Wild that this is still an issue. I've never seen super sensitive information in a bio, but I've seen many scammers in my server directing users to check their profiles where they hide their scam links from my moderation bot.
I'd urge you to reconsider this, please.
Headings are allowed as per Discords implementation. However this project decided against it. Please review the projects stance on this as I don't believe it's something you guys should be dictating.
"This project" is literally Discord themselves, so they are the ones that should be (and are) dictating it...
If you want use headings, go use Containers and TextDisplays, they already explained the reasoning to not include it in field values
This is still an unsolved issue, and although is not very annoying, it's a really nice quality of life to have. Please fix this issue.
Description
Editing a Container's spoiler property in any direction does nothing on the message.
Steps to Reproduce
Create a CV2 like so:
[
{
type: 17,
spoiler: true,
components: [ [Object] ]
}
]
Edit the message to be:
[
{
type: 17,
spoiler: false, // <--- flipped
components: [ [Object] ]
}
]
Expected Behavior
The container should toggle spoilers on/off.
Current Behavior
Nothing happens.
Screenshots/Vide...
It would be nice to have a timestamp style that matches the embed rendering, showing yesterday or today or the date it if it's further out than that.
Description
If you create a CV2 that has e.g. a container with a media gallery, those images are never indexed into the Media tab that is visible on Mobile. This tab currently indexes media that come from Embeds and of course normal posts, so it should probably also index media from CV2s.
Steps to Reproduce
Create a CV2 with a container that has a media gallery with N images. Open the channel on mobile and navigate to Media. Notice the images never appear here.
Expected Behavi...
Btw I've noticed the hyperlink with emoji issues not just in forwarded messages. I stopped putting emojis in my hyperlinks in cv2s for this reason.
🎯 Feature Request Summary
Add user-configurable modes to Discord overlay allowing it to work system-wide, not just in games.
📊 Problem Statement
Currently, Discord overlay only works in detected games, limiting usefulness for:
- Remote workers during video calls
- Online educators and students
- Streamers using multiple applications
- Content creators collaborating
Community Impact: 1,000+ upvotes on feedback portal
💡 Proposed Solution
Add overlay modes in s...
works for me, tested: spoiler > no spoiler > spoiler
make sure you have your client configured to not auto-reveal spoilers
<img width="793" height="307" alt="Image" src="https://github.com/user-attachments/assets/50403ba0-af9f-4065-a8d3-041c004c5671" />
POST https://discord.com/api/v10/channels/:id/messages
{
"flags": 32768,
"components": [
{
"type": 17,
"spoiler": true,
"components": [
{
"type": 10,
"content": "meow"
...
- Staff has shared various times that this Is deliberate. Command interactions use the webhook system and webhooks still rendering emoji in masked links is left in for backwards compatibility. It is removed from regular messages and not considered a supported use case; you should not use this anymore.
Description
#$#####$
Steps to Reproduce
Hhhh
Expected Behavior
Illlol
Current Behavior
Yyyyyyy
Screenshots/Videos
Uujjiiii
Client and System Information
Hjjkl
Random idea I had: what if Discord’s branding colours were documented at Community Resources, so we could use them in our apps to match the overall theme of Discord.
Like https://discord.com/branding but then all the colours that we see on Discord with a disclaimer that they are subject to change and may not be updated here for years.
Context is the Colour class in libraries like Pycord. I don't know if any non-dpy fork has it.
Or maybe there should be a styling guide somewhere...
Going through community resources, 13/21 listed libs have some sort of colour class or enums for preset colours
@almostSouji
Could you try again with the post having spoiler: false initially? I'm noticing that if the post is initially NOT marked as a spoiler, then it cannot be toggled on (does nothing).
But if the post initially has the spoiler flag set to true, it can be toggled on and off just fine.
Actually I'm noticing that it all "works", it just requires the client to refresh by navigating away to another channel and back. This doesn't quite solve the use case I'm going for which is a user posts something that should have been marked spoiler, moderator marks it as spoiler, and it's now hidden for users.
Anyway it's probably minor if even a bug at all.
i can reproduce that inconsistency, yes
Can you please provide screenshot or video
These scopes are only currently available for new integrations via our Social SDK offering. Learn more at https://discord.com/developers/social-sdk
The scopes you can use with the Social SDK are not an appropriate solution. The closest scope developers can use for updating user presence is sdk.social_layer_presence, but this scope also grants access to modifying the user's friend list and other unnecessary features. Pointing developers to use that when all they want to do is update user ...
Problem Statement:
Since the implementation of CDN Authentication Enforcement, avatar URLs retrieved via the API are ephemeral. This forces developers to re-fetch the User object frequently to obtain fresh HMAC signatures (ex, is, hm parameters), even if the avatar hash itself hasn't changed. This increases API overhead for simple display use-cases (e.g., portfolio sites, leaderboards, and third-party integrations).
Proposed Solution:
Introduce a persistent redirect endpoint tha...
CDN Signatures are only enforced for attachments.
Avatars are not affected, the link works until the user changes their avatar.
https://cdn.discordapp.com/avatars/223518178100248576/2cc169cafe1639f758ef7db5067ca003.png
CDN Signatures are only enforced for attachments.
Avatars are not affected, the link works until the user changes their avatar.
https://cdn.discordapp.com/avatars/223518178100248576/2cc169cafe1639f758ef7db5067ca003.png
CDN Signatures are only enforced for attachments.
Avatars are not affected, the link works until the user changes their avatar.https://cdn.discordapp.com/avatars/223518178100248576/2cc169cafe1639f758ef7db5067ca003.png
what about once the user change their avatar, there's no persistent link
Problem Statement:
Since the implementation of CDN Authentication Enforcement, avatar URLs retrieved via the API are ephemeral. This forces developers to re-fetch the User object frequently to obtain fresh HMAC signatures (ex, is, hm parameters), even if the avatar hash itself hasn't changed. This increases API overhead for simple display use-cases (e.g., portfolio sites, leaderboards, and third-party integrations).
Proposed Solution:
Introduce a persistent redirect endpoint tha...
I appreciate the correction regarding signatures only applying to attachments.
However, the value of a persistent {user_id} endpoint remains high for "low-logic" integrations (e.g., static READMEs, markdown files, or no-code tools) where implementing a websocket listener for USER_UPDATE or maintaining a database of hashes is over-engineered.
Regarding the caching concern: a 307 Temporary Redirect with a short max-age would allow the edge to handle the hash-lookup while letting the browser cac...
I appreciate the correction regarding signatures only applying to attachments.
However, the value of a persistent {user_id} endpoint remains high for "low-logic" integrations (e.g., static READMEs, markdown files, or no-code tools) where implementing a websocket listener for USER_UPDATE or maintaining a database of hashes is over-engineered.
Regarding the caching concern: a 307 Temporary Redirect with a short max-age would allow the edge to handle the hash-lookup while letting the browser cac...
Problem Statement:
Since the implementation of CDN Authentication Enforcement, avatar URLs retrieved via the API are ephemeral. This forces developers to re-fetch the User object frequently to obtain fresh HMAC signatures (ex, is, hm parameters), even if the avatar hash itself hasn't changed. This increases API overhead for simple display use-cases (e.g., portfolio sites, leaderboards, and third-party integrations).
Proposed Solution:
Introduce a persistent redirect endpoint tha...
I appreciate the correction regarding signatures only applying to attachments.
However, the value of a persistent {user_id} endpoint remains high for "low-logic" integrations (e.g., static READMEs, markdown files, or no-code tools) where implementing a websocket listener for USER_UPDATE or maintaining a database of hashes is over-engineered.
Regarding the caching concern: a 307 Temporary Redirect with a short max-age would allow the edge to handle the hash-lookup while letting the browser cac...
Problem Statement:
Since the implementation of CDN Authentication Enforcement, avatar URLs retrieved via the API are ephemeral. This forces developers to re-fetch the User object frequently to obtain fresh HMAC signatures (ex, is, hm parameters), even if the avatar hash itself hasn't changed. This increases API overhead for simple display use-cases (e.g., portfolio sites, leaderboards, and third-party integrations).
Proposed Solution:
Introduce a persistent redirect endpoint tha...
- Using Discord as your own CDN has never been supported.
- Using avatar links in markdowns or static resources when you know they will be invalid at some point in time is also not a good idea, use your own storage or image hosting site.
- GitHub already has an upload image feature that stores it on their own CDN permanently.
Description
A slash command is shown to users in DMs even when the app is not UserInstalled.
The user can see and click the command, but it cannot work and returns “Unknown Integration”.
This feels broken and confusing from a user perspective.
Steps to Reproduce
- Create an app with a slash command
- Enable
ContextType.BotDMfor the command - Do NOT enable or require UserInstall
- Do NOT install the app as a user
- Open a DM and type
/ - The command appears
- Click the c...
I would like to ask a few clarifying questions:
Are there any shared servers between the app and you?
After restarting Discord, was the slash command still visible?
@vakiliner: I would like to ask a few clarifying questions: Are there any shared servers between the app and you? After restarting Discord, was the slash command still visible?
Yes, there are shared servers between me and the app.
After restarting Discord, the slash command is still visible in DMs and still fails the same way.
If I don't have any mutual server with the app, there is no commands in short (since app is not user installed so—for now).
This appears as though it has been added!
<img width="1395" height="733" alt="image" src="https://github.com/user-attachments/assets/5cc43d9d-0c86-4ead-bef8-f29e57b7c529" />
This appears as though it has been added!
<img width="1395" height="733" alt="image" src="https://github.com/user-attachments/assets/5cc43d9d-0c86-4ead-bef8-f29e57b7c529" />
The field is called epoch not epoch_id:
{
"op": 24,
"d": {
"protocol_version": 1,
"epoch": 1
},
"seq": 8
}
Also running into this issue with images hosted by IGDB.
What I found as a work around is to edit the embed or component after 2 seconds with the same media, this seems to force an update in their cdn and the image loads. But it's kind annoying having to do that.
Hi team,
With the advent of the Discord Social SDK, developers can now update user presence through the Headless Session API by requesting the sdk.social_layer_presence scope. While this scope is useful for applications fully utilizing the Social SDK, it grants far too much privilege to applications that only want to update presence.
Currently, sdk.social_layer_presence is an umbrella scope that grants several permissions alongside presence updates, including:
- Connecting to the...
Description
When the API is queried by Discord in order to perform game detection, e.g. for a player's "Playing" status, and the game running is the 2001 title "Oni" from Bungie/Take-Two Interactive, it is being misreported as a 2023 game called "ONI: Road to be the Mightiest Oni". Looking at the API response manually, it seems that the two games were accidentally mashed together into a single entry, probably because they share the same executable name.
[Listing 2025.txt](https://githu...
thanks for the report! this has been fixed in https://github.com/discord/discord-api-spec/commit/a2312c8212004e6d51ee8f9ccf254256496bc97a
Description
When selecting the bot scope, you can select the integration type, although it should be obvious that only Guild Install is available
Steps to Reproduce
- Go to
https://canary.discord.com/developers/applications/${APPLICATION_ID}/oauth2 - In the OAuth2 URL Generator, select scope
bot - Select integration type User Install
Expected Behavior
Either the integration type selection will not be shown, or the integration type will not be clickable and **...
Description
The documentation for this endpoint lists the bio field as nullable: https://discord.com/developers/docs/resources/guild#modify-current-member - but when null is provided, the API complains that the bio field is required. Avatar and banner both still accept null.
Steps to Reproduce
- Attempt to reset your server bio:
curl --request PATCH \
--url https://discord.com/api/v10/guilds/{id}/members/@me \
--header 'Authorization: Bot {token}' \
--header 'Conte...
As far as I remember, there was no error before, apparently something was broken
thanks for the report! this has been fixed in https://github.com/discord/discord-api-spec/commit/7e1184014948d272b8040d6137084a112d39698c
A fix has been merged, should go out with the next API deploy. Sorry for the disruption
- i was able to reproduce this and a fix has been merged down, which will be included in the next ios & android releases
- as mentioned above issue no. 2 is a known and expected behavior, and the recommendation is to not rely on this behavior for your webhook messages
- this is also intentional behavior, we intentionally make the default font size inside of containers slightly smaller than in regular messages but we don't change the header sizes. that's why the triple header (16px in and o...
i was able to re-create the issue of GIFs being corrupted when uploading. i've released a fix which is live now on production!
for those of you having issues with animated WebP files, as far as i can tell this is expected and intentional behavior. if you would like to see support for animated WebP files in bot avatars and banners please open a separate feature request issue. thx!
I fixed this in November! looks like there were two issues for this, and this one did not get closed. https://github.com/discord/discord-api-docs/issues/7890#issuecomment-3550300314
While voice channel status is still considered unstable and is not supported for bot use yet, we have updated the dev portal's permissions to be consistent with the client, so this permission is now visible.
looks like this was resolved in 2024
Forum channels are available to non-community servers now, and this functionality has been added.
looks like this was resolved in 2024
looks like this was resolved in 2024
looks like this was resolved in 2024
The documentation has been redone since then and usage seems to be clearly documented now.
Would also be nice if we could get some information on whether these 429s are counted towards our Invalid Request Limit or if they are excluded, like shared ones
This feature has a few interesting things to note:
-
Updating a pre-exisiting exception fires a
GUILD_SCHEDULED_EVENT_EXCEPTION_CREATEinstead of an update. -
Removing the
recurrence_rulefor a scheduled event that already has exceptions doesn't remove any of the existing exceptions. -
There is a seemingly unused
GUILD_SCHEDULED_EVENT_EXCEPTIONS_DELETEevent that exists. I tried to see when it would fire, but even after deleting therecurrence_rule, I still couldn't get it to...
The Discord API spec and libraries such as Discord.Net define a PrimaryGuild model for users, including fields like guild_id, identity_enabled, and tag, which are used by the Discord client to display server identity tags.
However, this field does not appear in Gateway payloads (USER_UPDATE, GUILD_MEMBER_UPDATE), meaning bots cannot detect when a user selects or removes a server’s tag.
Is this omission intentional or is there an upcoming plan to expose primary_guild to bots?
Clarific...
This is incorrect - primary_guild is already included in guild_member_update and the event does trigger when the field is changed. If you aren't seeing this, it is probably an issue in your code or library.
<img width="586" height="269" alt="image" src="https://github.com/user-attachments/assets/ae144ca5-e496-4c77-a98c-e74c65c41d81" />
This is incorrect - primary_guild is already included in guild_member_update and the event does trigger when the field is changed. If you aren't seeing this, it is probably an issue in your code or library.
<img width="586" height="269" alt="image" src="https://github.com/user-attachments/assets/ae144ca5-e496-4c77-a98c-e74c65c41d81" />
Adding a smart timestamp style to message formatting that mirrors embed behavior would solve this neatly of course.
If the existing timestamp syntax <t:unix:style> had a new style (for example, S) that renders "today" when the timesatmp falls within the viewer's current calendar day, "yesterday" for the previous day, and otherwise shows a localized short date (same as d), using the viewer's timezone. I think this can be done.
Description
Hey ! So basically, it might be intentional but while using string select menus, I encountered an emoji error on the name (Invalid Emoji) and the error code for that was "BUTTON_COMPONENT_INVALID_EMOJI", it doesn't really make sense because it is not a button but well, it might me good to change the global name COMPONENT_INVALID_EMOJI or just add different codes for different component types.
Steps to Reproduce
Send a request for an [Interaction Response](https://discor...
Description
When sending a message which contains a media gallery component, you are able to attach external images via URL.
However, the first time this is done, the image at that URL is proxied by Discord and cached in case it is reused in future.
By the time the message is received in the channel it has been sent to, this process may not have completed.
For embeds, the image simply pops up when ready. II reused, the image appears instantly:
Thanks for fixing the corrupted Gifs, However now when uploading through the panel something happens where it sets each frame delay to a default or as 1ms as I've discovered causing a very choppy animation for any Gif uploaded through the Developer Panel
Discord Uploaded
<img width="1198" height="373" alt="Image" src="https://github.com/user-attachments/assets/72be6c3b-4c10-4bda-8abc-d408afea9c4d" />
...
I'm not sure if it's the same issue, but when trying to edit a message with a select menu with the same ID but with different options, it will still show the old options and not show the new ones. That seems specific to ComponentsV2.
Description
The ratelimiting documentation states:
Per-route rate limits exist for many individual endpoints, and may include the HTTP method (GET, POST, PUT, or DELETE). In some cases, per-route limits will be shared across a set of similar endpoints, indicated in the
X-RateLimit-Bucketheader. It's recommended to use this header as a unique identifier for a rate limit, which will allow you to group shared limits as you encounter them.
But in reality, endpoints with the same top-l...
The MANAGE_GUILD permission currently bundles together read-only informational access with powerful server modification capabilities. This creates unnecessary barriers for bot developers who only need to read data (like invite tracking) but must request broad permissions that alarm server owners.
The MANAGE_GUILD permission currently includes:
Viewing server name and settings
Modifying server name and region
Viewing all invites (including creator information)
Adding bots/apps t...
Important note about MANAGE_INTEGRATIONS, bots cannot add other bots to the server, only the user can do this
This is something I've wanted for years, just because of how powerful MANAGE_GUILD currently is.
Though in my mind, I had the following split as an idea (slightly different from OP's split):
MANAGE_GUILD- "Allows members to change details about this server, including its name, icon, and regions for voice and stage channels. Also allows editing community settings if this server is community enabled."MANAGE_INTEGRATIONS- "*Allows members to add or remove apps and third-par...
Appreciate the depth. I really only want out of this VIEW_INVITES to be a thing but looks like I've kicked a can of worms.
thanks for reporting! i've shipped a fix that will be included in the next mobile release :3
a283392 Bump @types/node from 24.0.8 to 25.0.7 - dependabot[bot]
fd8e689 Bump @actions/core from 1.10.1 to 2.0.2 - dependabot[bot]
Bumps @actions/core from 1.10.1 to 2.0.2.
Changelog
Sourced from @actions/core's changelog.
@actions/core Releases
2.0.1
Bump @actions/exec from 1.1.1 to 2.0.0 #2199
2.0.0
Add support for Node 24 #2110
Bump @actions/http-client from 2.0.1 to 3.0.0
1.11.1
Fix uses of crypto.randomUUID on Node 18 and earlier #1842
1.11.0
Add platform info utilities #1551
Remove dependency on uuid package #1824
Commits
See full diff ...
Changes and updates to invite API documentation to allow for granting roles and specifying which users can accept an invite
It would be cool if it was possible to edit roles for existing invites
why does this field expect a file rather than an array of snowflakes like in other places?
why does this field expect a file rather than an array of snowflakes like in other places?
Maybe because the array of snowflakes can be large?
The original use-case was for large batches of users so file upload made the most sense. Sounds like allowing for smaller batches of users as an array makes sense so I'll pass that feedback back to the team!
0f895a9 Clarify file behavior - anthonydiscord
e6b6aa6 Community Invites (#8077) - anthonydiscord
Maybe because the array of snowflakes can be large?
After my answer, someone joined my server and started insulting me for my answer
Description
Text input components do not allow correction of spelling errors
Steps to Reproduce
- Respond to interaction with a text input component
- Make spelling mistakes when typing (e. g. helo world)
- Select the suggested correction
Expected Behavior
The text will be replaced
Current Behavior
Nothing is happening
Screenshots/Videos
No response
Client and System Information
canary 485281 (a60ed72) Host 1.0.802 x64 (73866) Build Override: N/A Window...
Description
Noticed when looking at intents to answer a question. The note is no longer on a new line and there is no more hyperlink.
Steps to Reproduce
Go to the application -> bot and look at intents
Expected Behavior
Should render as separate lines with a hyperlink
Current Behavior
Does not render correctly
Screenshots/Videos
No response
Client and System Information
Chrome, MacOS:
Version 143.0.7499.170 (Official Build) (arm64)
4741a2c Add error codes - anthonydiscord
I have a fix for this. It will go out sometime this week. Thank you for the report
@DV8FromTheWorld Great, thank you!
Description
The ratelimiting documentation currently states for top-level resources:
During calculation, per-route rate limits often account for top-level resources within the path using an identifier—for example, guild_id when calling /guilds/{guild.id}/channels. Top-level resources are currently limited to channels (channel_id), guilds (guild_id), and webhooks (webhook_id or webhook_id + webhook_token). This me...
Awesome! That would be incredibly helpful for agents like Claude Code. Now they can access the vast amount of knowledge hidden within so many Discord communities.
Just need a cli wrapper or something. Hope it's possible..
Awesome! That would be incredibly helpful for agents like Claude Code. Now they can access the vast amount of knowledge hidden within so many Discord communities.
You need to find god.
cool! That's helpful for LLM agents. Some libs/API knowledge is hidden in certain lib/product/techonology discords. Now we can pipe not only docs, but community knoweledge there more easily
Just need a cli wrapper or something. Hope it's possible..
You can't use any Discord data to train AI's, It's against the ToS, Shapes Inc got slapped for that and other issues, so if you want to get banned then gl.
cool! That's helpful for LLM agents. Some libs/API knowledge is hidden in certain lib/product/techonology discords. Now we can pipe not only docs, but community knoweledge there more easily
Just need a cli wrapper or something. Hope it's possible..
Very confused on why this was edited to completely change the first paragraph, but as others have said, this is explicitly against terms of service and would likely be a massive violation of user privacy. Discussing projects in a Discord se...
Description
I have recently created a V2 component having a lot of buttons, images and text on it, every button actually just deletes the v2 component and edit it with newer one with updated content, that's the functionality, and the CPU and memory consumption just increasing continuously by the bot, until unless it reaches 100% and crashes my VPS at the end, this continuos increase in usage is not much fast, but if i let the bot online, in around 3 days it reaches the max and my server ...
This sounds like a bug with your api wrapper and not the discord api.
I've edited my post because it seemed like people misunderstood my point. To clarify, I have no intention of training LLMs on user data or anything...
To provide some context: there are tools like Context7 that connect documentation to LLM agents so that the code or answers they produce are more accurate. Even a simple tool like web search reduces hallucinations.
The problem I often encounter is that for certain technologies, there aren't enough documentation/articles on the web. Much o...
I perfectly understood your point the first time, it was just a bad take
A fix for this has been merged. The error code will be generic instead of component specific.
It should be out in a few hours
It is unfortunate that our rate limits are so confusing, and its possible this will change one day, but for now this is working as intended. The quoted docs quite directly say that "In some cases, per-route limits will be shared across a set of similar endpoints", and thats precisely whats happening here.
You say:
Both endpoints should return a different X-RateLimit-Bucket hash, as they are different ratelimits.
Except they are not different rate limits, they are shared limits.
but i...
If I understand your issue correctly, the problem youre stating is not that the API is working incorrectly - after all the quoted block from the API docs explicitly states that routes often and may be bucketed like this, not that theyre guaranteed to - but rather that its difficult in this system to predict what a rate limit bucket will be for a request. We understand that this is frustrating, but it is working as intended. Let me know if Ive misunderstood your issue.
Also, please dont...
- Add link to App Verification page (/select/verification-onboarding)
- Add links to Discovery Status (/select/discovery/status) and Discovery Settings (/select/discovery/settings)
- Add link to Activities -> URL Mappings (/select/embedded/url-mappings)
- Add link to Activities settings (/select/embedded/settings)
- Remove backtick formatting from all linked portal section names for consistency
All Developer Portal section references now use the application selector deep-link format fo...
Example!
<img width="1186" height="552" alt="image" src="https://github.com/user-attachments/assets/4305dd37-24dc-42fa-bff6-7979f82890fd" />
Hi @yonilerner, thank you for taking the time to reply
If I understand your issue correctly, the problem youre stating is not that the API is working incorrectly - after all the quoted block from the API docs explicitly states that routes often and may be bucketed like this, not that theyre guaranteed to - but rather that its difficult in this system to predict what a rate limit bucket will be for a request.
Yes, that entire paragraph is worded in an purposely vague way for to give leeway...
Hi @yonilerner , its quite likely I didn't explain myself correctly in the original post, so I'll give you some example and traces to hopefully illustrate the problem better:
If you make two requests, one after another to POST /channels/1185617944248590507/messages and PATCH /channels/1185617944248590507/messages/<message_that_was_created_id>, they will get the same x-ratelimit-bucket header, but the internal bucket they hit is actually different, as can be seen by remaining being `l...
Thank you Discord for taking away features.
originally trying to just fix #api-chat message, but then I realized not all codeblocks shows their possible enum edition
edbc6e3 Update relationships.read reqs - anthonydiscord
We've opened up the relationships.read scope for Activities under the Social SDK terms. To get access to the scope you will need to accept the Social SDK terms for your app in the Social SDK settings. Requesting approval for this scope from Discord is no longer necessary. With this scope getRelationships() in the embe...
Mark Android and iOS as supported platforms for Unreal Engine in the platform compatibility matrix.
this is incredibly broken at the moment, for some reason it wont even take my url, or send any requests to it.
thanks for the bug report! i've landed a fix for this that is now live on production :3
Preview:
<img width="1124" height="886" alt="image" src="https://github.com/user-attachments/assets/395fd278-d00a-4d62-b327-e28004617381" />
thanks for reporting this! i was able to reproduce the issue and i've shipped a fix that just hit production today :3
a960980 Update permission - anthonydiscord
a914f02 Lil fix - anthonydiscord
In order to view target users or update target users on an invite the caller must be the invite creator or have MANAGE_GUILD permissions. In order to create an invite with target users the caller no longer needs MANAGE_GUILD, they will only need CREATE_INSTANT_INVITE.
same for this one, MANAGE_GUILD or VIEW_AUDIT_LOG permissions
sorry I didn't mention this in my message, I actually made this require MANAGE_GUILD or VIEW_AUDIT_LOG permissions now
86c447c Final fix 2 - anthonydiscord
@foxfirecodes I'm experiencing an issue where it still displays the broken behavior when I have Discord open on my phone, but it works correctly if I only have the desktop client open. Does image proxying vary depending on client?
@abdullahqusim yeah, this fix will be out to mobile clients in 1-2 weeks due to the slower mobile release process.
Going to close this as working as intended. You're not allowed to edit an archived thread. If you want to edit it, you need to un-archive it first. Appreciate the input, I don't see us changing this behavior anytime soon.
I just stumble across this. So why we can Lock a Thread through the Discord Visual Interface? It doesn't make sense to allow it that why and block it through the API. A bit stupid I guess.
I just stumble across this. So why we can Lock a Thread through the Discord Visual Interface after being archived? It doesn't make sense to allow it that way and block it through the API. A bit stupid I guess.
You apparently haven't looked at how it works under the hood
The Discord client first unarchives the thread, then locks and archives it
You apparently haven't looked at how it works under the hood
The Discord client first unarchives the thread, then locks and archives it
Oh really? lol, thanks, I did just that.
Description
The documentation should make it clear that the access token
Steps to Reproduce
Use discord.js or any other common library
Expected Behavior
Applications should treat access tokens as opaque strings
Current Behavior
Some applications rely on tripartite structure of existing access tokens
Screenshots/Videos
No response
Client and System Information
many
Would be neat if the access tokens were standard JWTs instead of a custom JWT derivative, if anything.
Just go thit by this limitation.
The best workaround I can think of that doesn't require the GUILD_MEMBERS intent (which is required for the workaround that uses the list guild members endpoint):
- Create a new private thread
- Send a message to the private thread that pings the role (Perhaps use
@silentat the start to avoid the notification sound) - Use the [list thread members endpoint](/channels/[{cha...
It would be great to have some sort of "middleware" for Discord to call before the bot being installed on a guild or user.
I imagine it like this:
User has Authorization Modal open and completes the flow.
Before the app is being added to the guild or user, the configured webhook endpoint gets called
If the Webhook responds with a 200 OK, then everything proceeds as usual. If it responds with 403 Forbidden and a json payload like `{ error: "You are banned from using the bot for viola...
What you're describing is already possible by enabling auth code grant, see https://discord.com/developers/docs/topics/oauth2#advanced-bot-authorization
Can you say if that also works for user-installed apps? Is the documentation not completed for that?
Can you say if that also works for user-installed apps? Is the documentation not completed for that?
I assume it's the same as it's also OAuth2, but with an integration_type param and no bot scope.
I need to try that out 🤔
@foxfirecodes Thank you for this! Can confirm it's working now.
I was curious: Would it be possible as a developer to specify exclusions on which images to not index also? I have a bot that will show media from social media posts and the section avatar accessory feels unnecessary to index as it's often just a supplementary image and not the "main" focus of a post. For example, it can display the contents of a tweet which might have the user's profile pic (irrelevant) and the post's main medi...
Description
The docs for emojis say there is a require_colons property: "whether this emoji must be wrapped in colons".
All the example emoji objects on the page have require_colons set to true, but the existence of the property implies that it might sometimes be false.
In what cases would an emoji have require_colons set to false, and how do you enter the emoji in those cases?
Steps to Reproduce
- Read the docs
- Enc...
i believe that's specific to emojis from the twitch integration
The field is used for Twitch subscriber emotes that are synced to a server
how do you enter the emoji in those cases?
The name gets replaced with the emoji when the client sends the message
@yonilerner Bumping this because I don't want it to be forgotten
Seriously? Scammers constantly develop, and change their ways of scamming on a weekly/monthly basis.. and Discord is still worried about people sharing PUBLIC "SENSITIVE" information in BIOs?
Just add a switch in BIO "make my profile private/for friends only" and please let us use bots to catch scammers posting scam info/links in their profiles.
eda2653 Fix incorrect event property name (#8063) - MinnDevelopment
8cf1a76 Bump @types/node from 24.0.8 to 25.0.10 - dependabot[bot]
fbeaa73 document new modal components (#8095) - anthonydiscord
i should stop breaking the damn tables
3f03b22 Clarify remove -> increase rate limits - colinloretz
ceeb234 Clarify remove -> increase rate limits (#8097) - colinloretz
I'm closing this issue because this is currently working as intended for reasons mentioned above (autocomplete options still allow you to input any value and only converts to autocomplete values when an option is actually selected)
I do agree though that this can result in some situations that comes as a surprise to users, so I opened a task internally to think about this flow some more. We may be able to improve this for the more common case of a single autocomplete option, but once multi...
Addresses critical developer friction around mobile authentication by creating a dedicated guide for iOS and Android platforms.
New Documentation:
- Created "Account Linking on Mobile" development guide with setup instructions for Unity, Unreal Engine, and C++ standalone
- Platform-specific configuration
- Deep linking setup with custom URL schemes
- PKCE documentation explaining why it's mandatory for ALL mobile apps using deep links, regardless of client type
Key Content:
- Authe...
Massive preview. Click on to un-sqish.
<img width="2553" height="11876" alt="screencapture-localhost-3336-developers-docs-discord-social-sdk-development-guides-account-linking-on-mobile-2026-01-27-14_19_52" src="https://github.com/user-attachments/assets/9db79c4a-ecdb-4405-a9f3-aac344d66a11" />
Any news regarding this bug?
b80585f Add comprehensive mobile account linking docume... - markmandel
99c566a Update permissions for community invites (#8090) - anthonydiscord
@war3i4i I think this layout shift where the loading placeholder disappears and then the image reappears only occurs if the image's width is so high that the image cannot display in Discord at max height (i.e. the height of the loading placeholder). I got around this by using images with different dimensions, but obviously that isn't a suitable workaround for all use cases.
Hi sorry! Apparently github notifications are not working for me and I never saw this. I think youre right this might be a real issue, looking into it
I'm working on a bot that allows a server's members to post bounties for other members to complete. The descriptions for these bounties are user-written, and in the interest of not being a method of dodging moderation, my team is looking into making sure the bot's messages all comply with a housing server's AutoMod.
Fetching AutoMod rules and regexps works ok, but it feels a little ironic to be asking for ManageServer in order to fetch them for compliance (since that also lets us change th...
If a bot is installed by the guild, automod doesn't check its content, as per the old behavior.
Bot messages are checked by automod if they are installed only by the user.
Description
When sending a message which contains a media gallery component, it causes weird layout shift behavior if the image's width is too high.
I've tried experimenting with different image dimensions and I believe this only occurs if the image aspect ratio exceeds specifically 11:7.
I've attached a video showing an image of exactly 11:7 aspect ratio and an image which is 1px wider.
https://github.com/user-attachments/assets/aed09920-53b6-474c-8111-71df0ebe49ac
The former shows...
If a bot is installed by the guild, automod doesn't check its content, as per the old behavior.
Bot messages are checked by automod if they are installed only by the user.
I've fixed a bug causing message endpoints that were tracked separately to have the same bucket id. You should not see the same bucket header anymore except for rate limits that are truly shared across endpoints. Thanks for the report!
Description
Tapping an asset in a media component crashes Discord.
Steps to Reproduce
Example payload using @discordjs/core:
await api.channels.createMessage(CHANNEL_ID, {
components: [
{
type: ComponentType.MediaGallery,
items: [
{
media: {
url: URL
}
}
]
}
],
flags: MessageFlags.IsComponentsV2,
});
Expected Behavior
Discord previews the image.
Current Behavior
Discord crashes.
Screenshots/Videos
https://...
Description
Seemingly randomly when updating a message content with a button interaction update, after updating, it will return back to the previous version of the message after ~1 second.
It only seems to happen when a message has been updated multiple times, but due to the nature of it being seemingly random, I can't tell.
A video is attached of this happening, you can see that after clicking stand, it shows an end screen and a play again button. take note of the id shown in the foot...
6533d99 we support avif decoding on upload, but not ser... - salarkhan
revert a change made in https://github.com/discord/discord-api-docs/pull/7568 that incorrectly states we support serving AVIF.
059b57f run md formatter - salarkhan
1e7d767 [docs] we support avif decoding on upload, but ... - salarkhan
Hi! I plan to add support for pasting files into file upload components in the future, but for now I have disabling pasting files so they do not go into the chat input anymore (on canary).
[discord/discord-api-docs] New comment on issue #8101: Media gallery components crash Discord on iOS
We've pushed alpha 92422 which fixes this bug!
Hello,
is there any fixes regarding this issue? Discord won't load my Embeds in-app and on-site as well.
I have a few embeds with different length content and right now they are stacked vertical and it looks like someone piled up a stack of random mismatched bricks. it would look a lot better if they flowed and wrapped horizontally and/or i could set a minimum width.
I see in the resulting HTML the container has "grid-template-columns: repeat(auto-fill,minmax(100%,1fr))" which effectively a single column only. adding a "min embed width" option to override the 100% would allow wrapping, and a...
Summary
Adds clarification for the min_values constraint when using string select menus inside label components with required: true.
Changes
Added a note to the select menu documentation stating:
If the select is inside a label component and required is omitted or true, the min_values have to be at least 1 or omitted.
Currently, the API rejects modals containing required select menus with min_values: 0, but this constraint is not documented. This creates confus...
cc @GamingGeek (from DDevs Discord)
Problem
Users with "Allow direct messages from server members" disabled cannot be contacted by bots, even for critical use cases like moderation appeals or modmail systems. This creates a catch-22 situation:
- A user is banned/muted and wants to appeal, but their DMs are closed
- Appeal/modmail bots cannot initiate contact unless the user DMs the bot first (which they may not know to do)
- The only alternative is requiring users to install the ...
Wouldn't a better solution just be to have interactions allowed in DMs directly with the bot without a mutual / user install? You can send messages in response to the interaction, no need for any "one time token" or whatever
you can use interactions in DMs already. or what do you mean?
you can use interactions in DMs already. or what do you mean?
You mentioned the following in your discussion,
Introduce an optional one-time DM token system tied to the interaction initiator. When a bot responds to an interaction with a special flag (e.g., with_dm_token: true), Discord would grant a temporary, single-use token that permits the bot to send exactly one DM to the user who triggered that interaction - even if the user has their DMs disabled.
but surely all that's neede...
\*\*\* If `required` is omitted or `true`, `min_values` has to be at least `1` or omitted.
The mention about that it's only in modals (you said label here, but the same) is already given through the first note. We can shorten it.
\*\*\* `min_values` must be at least `1` or omitted If `required` is omitted or `true`.
| min_values?\*\*\* | integer | Minimum number of items that must be chosen (defaults to 1); min 0 (or 1, see note), max 25 |
Yeah I thought about that but was unsure. Thanks for clarifying 👍
Yeah I thought about that but was unsure. Thanks for clarifying 👍
True, I forgot it for the other select menus as well. I will do that later 👍
True, I forgot it for the other select menus as well. I will do that later 👍
Honestly you might have more luck with components V2 than embeds, but even then both are fiddly, best advice I can give is to try and force the format using markdown, but even that doesn't always work...
Container has the same issue except with flex instead of grid, overriding the style with "flex-direction: row; flex-wrap: wrap; max-width: fit-content" does the trick though.
I don't see a way to emulate the embed's "fields" in a component. If they supported markdown tables it could though. I'd be willing to forgo that formatting if the containers wrapped horizontal
I will update the sections about the other selects later
Description
https://discord.com/developers/docs/components/reference#media-gallery-media-gallery-item-structure
Media Gallery Item is a nullable field, but it is not documented as such. It is only documented that it may be omitted, but it can also be null
Steps to Reproduce
- Send a message (components v2) with a media gallery item (without the media description omitted) and a string select
- Edit the string select and observe the message sent in the payload
- Notice that the...
This issue may also occur for Thumbnail components, but I haven't verified
agreed. baffling this is STILL here now. OBS sure doesn't have any issue capturing HDR displays.
Description
I am attempting to update the embed description of a specific message. Discord returns a 200 OK response, but the embed description is not actually updated. This issue occurs consistently with this particular message: edits are acknowledged successfully but do not take effect.
Steps to Reproduce
Perform this request
curl --location --request PATCH 'https://discord.com/api/v10/channels/1467596799115133051/messages/1467652483185905808' \
--header 'Content-Type: app...
I think this message should be removed if the modal doesn’t contain a text input component.
I don’t see why it would be there in that case, it takes up about 1/5 of the screen on mobile and it is really annoying.
914273a Bump @types/node from 24.0.8 to 25.2.0 - dependabot[bot]
45f896e Bump @actions/core from 1.10.1 to 3.0.0 - dependabot[bot]
Bumps @actions/core from 1.10.1 to 3.0.0.
Changelog
Sourced from @actions/core's changelog.
3.0.0
Breaking change: Package is now ESM-only
CommonJS consumers must use dynamic import() instead of require()
2.0.3
Bump @actions/http-client to 3.0.2
2.0.1
Bump @actions/exec from 1.1.1 to 2.0.0 #2199
2.0.0
Add support for Node 24 #2110
Bump @actions/http-client from 2.0.1 to 3.0.0
1.11.1
Fix uses of crypto.randomUUID on...
It's in the title. The DEFERRED_UPDATE_MESSAGE acknowledgement should display a loading state, similar to what DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE does.
Imagine you have an image gallery, with a string-select underneath. The problem is that the gallery needs to perform HTTP requests to third-party APIs in order to switch images, and those APIs tend to be a bit slow.
Since there's no guarantee on how fast the APIs are (often, they do end up exceeding 3 seconds), I send a `DEFERRED_U...
[discord/discord-api-docs] Issue opened: #8113 is_renewal reporting false despite it being a renewal
Description
In rare cases, with server role subscriptions, the is_renewal property of a Role Subscription Data Object does not produce reliable data signifying whether subscription was a renewal.
Example culprit Message ID: 1468274751947538442
In Guild ID: 831083226319552542
In Channel ID: 831083227644428318
Steps to Reproduce
N/A
Expected Behavior
is_renewal should equal false.
C...
I can see why this would be confusing! I think the system is working as intended here - there's some subtlety in the semantics of is_renewal. It reflects renewal of a subscription tier (a specific SKU). This field will be false for a tier upgrade, which is recorded as a new subscription in our system - with proration for the previous tier.
total_months_subscribed counts cumulative time across all historical subscriptions for your server (including all tiers). This also includes nonconse...
Thank you for the detailed report! I've spent a little time trying to reproduce your issue, but using my own test channel and message since I don't have access to yours. So far, I have not seen the symptom you described. Can you confirm the following?
- Do you only see the described issue with this specific message, or has this happened with different messages and this particular one happens to repro consistently for you?
- Have you observed anything else unusual about this particular mes...
Thank you for getting back
-
Yes, this happens specifically for this message alone, and I am able to reproduce it consistently. I just tested it again and am still able to reproduce it. For context, this server is one of the servers my bot is in, and I discovered this after one of the admins from that server complained that the bot was not working. I did get their permission before attempting to use the bot token to make manual requests.
-
None that I can see. In fact, I tested it by crea...
Some other observations:
-
I am able to edit the message content by using the same PATCH endpoint.
-
I haven't experimented with other variations of editing the embed description because I'm afraid it might end up working, and the above bug won't be reproducible anymore.
I did a little more digging, and it looks like your bot doesn't have the EMBED_LINKS permission in the target channel. This causes the behavior you're describing, where our API silently ignores the embed part of the payload, while accepting the rest of the update. It seems likely that this permission was revoked at some point, but I'm not sure why. Please work with the server admin to check your bot's permissions, inclu...
20219d5 Annotate MediaGalleryItem and ThumbnailComponen... - brad-discord
Note that the description fields on Media Gallery Item and Thumbnail are nullable.
Addresses documentation gap raised in https://github.com/discord/discord-api-docs/issues/8107
a396691 Annotate MediaGalleryItem and ThumbnailComponen... - brad-discord
Documentation change merged. Thanks for the report!
Thank you, that was indeed the issue. The admin confirmed that it is working properly now.
\* `min_values` must be either omitted or at least `1` if `required` is omitted or `true`.
Mind changing the wording one more time for each of them? I think this wording makes the most sense
220f159 Add invite updates - anthonydiscord
Getting an invite will now return a partial role. The csv passed into Create Invite will now have a standardized return format when accessing it with Get Target Users.
f4b6cf9 Add changelog - anthonydiscord
ed148ec Clarify changelog - anthonydiscord
\* Requires `multipart/form-data` as the Content-Type header, with other parameters as form fields in the multipart body. Uploading a file with invalid user ids will result in a `400 Bad Request` error pointing out the invalid ids. Duplicate user ids in the file will be ignored.
Gets the list of users allowed to see and accept this invite. The response is a CSV file with a `user_id` header and each user id from the original file passed to the [Create Channel Invite](/docs/resources/channel#create-channel-invite) endpoint on its own line. Requires the caller to either be the inviter, or have the `MANAGE_GUILD` or `VIEW_AUDIT_LOG` permissions.
- [Get Channel Invites](/docs/resources/channel#get-channel-invites) now returns partial data for the [`roles`](/docs/topics/permissions#role-object) field, instead of the full role object, so this is a **breaking change**.
- [Get Target Users](/docs/resources/invite#get-target-users) now returns a standardized CSV file with a `user_id` header with each user id on its own line.
is this supposed to be feb 13?
<img width="1153" height="206" alt="Screenshot 2026-02-05 at 10 42 07 AM" src="https://github.com/user-attachments/assets/502aa174-f37a-4f06-99eb-a1a902bdfe59" />
<img width="1125" height="99" alt="Screenshot 2026-02-05 at 10 41 17 AM" src="https://github.com/user-attachments/assets/1bc60441-8d4f-4303-bd2a-383ac29fa3a6" />
<img width="1105" height="246" alt="Screenshot 2026-02-05 at 10 40 58 AM" src="https://github.com/user-attachments/assets/d36c35e4-b41c-45c4-b6b4-7d59da2dd7d0" />
<img w...
Description
You can specify roles for a guest invites.
Although these roles aren't gives to the user when joining a voice channel, it's still odd that the field isn't ignored.
Steps to Reproduce
Create a guest invite: POST /channels/{channel.id}/invites
{
"flags": 1,
"role_ids": ["1234567890123456789"]
}
Expected Behavior
Error or ignore this field
Current Behavior
Created:
{
"flags": 1,
"channel": {
"id": "123456789012345...
Thanks for the report! I'm consulting with the dev team and will get back to you soon.
The component v2 look so much nicer and play better too. Having blank notifications is a major pain.
It looks like the issue has been fixed, can I close this issue?
Responder bot's API version determines the payload format here. Recommend newer API version.
4898526 Add more details - anthonydiscord
423036a Add reasoning - anthonydiscord
The partial role object only contains id, name, position, color, colors, icon, and unicode_emoji.
The csv will always have user_id as the header.
PLEASE ADD THISSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
My dude you can already do this for 3 years now with the timestamp format 🙃 https://sesh.fyi/timestamp/
Not in embed footers my dude. Read the post
Embeds will not be getting new features, we recommend using Components v2 with subtext formatting, or you can just use subtext formatting in an embed.
Description
The temporary=true field makes membership temporary if they haven't been assigned a role.
But by adding invite-roles, temporary membership stops working.
Steps to Reproduce
- Create an invite:
POST/channels/{channel.id}/invites
{
"temporary": true,
"role_ids": ["1234567890123456789"]
}
- Join the guild using the created invite.
- Go offline.
Expected Behavior
- Error:
temporaryis not compatible withrole_ids
Or: - Kicked from the g...
I too, have a slash command where we have 2 autocomplete inputs and the second autocomplete input depends on the first one. Changing the first input, does not remove cached choices for the second input. Due to this limitation from discord, we are not able to move forward with our feature.
For some cases, especially for Usage with Screenshots, the Modal File Upload component should be supporting clipboard pasting.
It is supported in File Upload Slash command options - and could function exactly the same: Focus the Modal File Component -> paste from clipboard.
Currently this limitation stops from migrating some slash command upload commands to a modal, which is the more logical and easy usage in most use cases.
4afb5dc Bump eslint from 9.2.0 to 10.0.0 - dependabot[bot]
Bumps eslint from 9.2.0 to 10.0.0.
Release notes
Sourced from eslint's releases.
v10.0.0
Breaking Changes
f9e54f4 feat!: estimate rule-tester failure location (#20420) (ST-DDT)
a176319 feat!: replace chalk with styleText and add color to ResultsMeta (#20227) (루밀LuMir)
c7046e6 feat!: enable JSX reference tracking (#20152) (Pixel998)
fa31a60 feat!: add name to configs (#20015) (Kirk Waiblinger)
3383e7e fix!: remove deprecated SourceCode methods (#20137) (P...
a9e2352 Bump @eslint/js from 9.2.0 to 10.0.1 - dependabot[bot]
Bumps @eslint/js from 9.2.0 to 10.0.1.
Release notes
Sourced from @eslint/js's releases.
v10.0.0
Breaking Changes
f9e54f4 feat!: estimate rule-tester failure location (#20420) (ST-DDT)
a176319 feat!: replace chalk with styleText and add color to ResultsMeta (#20227) (루밀LuMir)
c7046e6 feat!: enable JSX reference tracking (#20152) (Pixel998)
fa31a60 feat!: add name to configs (#20015) (Kirk Waiblinger)
3383e7e fix!: remove deprecated...
17d1d22 Bump @types/node from 24.0.8 to 25.2.2 - dependabot[bot]
[discord-api-docs] Branch anthony/radio-checkbox-components was force-pushed to `19c5a77`
We're introducing three new modal components: Radio Groups, Checkbox Groups, and Checkboxes. These components expand the ways users can interact with your app through modals, enabling single-choice selections, multi-select options, and simple yes/no toggles.
The New Components
- Radio Group: A single-selection component for choosing exactly one option from a list. Supports the
requiredfield to allow optional selections. - Checkbox Group: A multi-selection co...
| values | array of strings | The values of the selected options, or an empty array `[]` if no options are selected (only possible when `min_values` is `0` and `required` is `false`) |
Looks like there's a mistake here, instead of null there's an empty array.
I believe that's only true for the radio group. For checkbox group the response is an empty array from my testing. For example sending:
component: {
type: 22, // ComponentType.CHECKBOX_GROUP
custom_id: "event_checkbox",
min_values: 0,
required: false,
options: [
{value: "march-4", label: "March 4th"},
{value: "march-5", label: "March 5th"},
{value: "march-7", label: "March 7th", description: "I know this is a Saturday and is ...
yes, null only applies for radio
Sorry for explaining it poorly.
What I meant to remove the ? since null isn't returned.
ok true @anthonydiscord thats on me
keep in mind that the table will break with that suggestion
| values | array of strings | The values of the selected options, or an empty array `[]` if no options are selected (only possible when `min_values` is `0` and `required` is `false`) |
Oh sorry I misread that too! Great catch, I'll update it and fix tables
64ed548 Fix checkbox values - anthonydiscord
the sentence "only possible when[..}" sounds kinda useless here
| min_values? | integer | Minimum number of items that must be chosen; min 0, max 10 (defaults to 1); if set to 0 `required` must be `false` |
actually, missing ;
This would be super helpful, it's a major block to our adoption of modals.
0e49a1a Update docs/components/reference.mdx - anthonydiscord
Agreed, fixed this and another spot where I added that
ggs we fucked up the
again
v2_final.psd, lets try this again
Next Generation Docs Project
We're excited to announce the launch of our Next Gen Docs project! This initiative aims to improve the way developers interact with Discord's developer documentation, making it more accessible, comprehensive, and user-friendly.
Our Goal
The Discord API has evolved far beyond its origins as a platform for bots. Today, we're a comprehensive developer platform supporting:
- Discord Apps and Bots - The...
@anthonydiscord RIP your components PR
RIP your components PR
Excuse me, I wrote the most xD but we'll fix it
3a100cd Bump mdast-util-to-hast from 13.1.0 to 13.2.1 i... - dependabot[bot]
Bumps mdast-util-to-hast from 13.1.0 to 13.2.1.
Release notes
Sourced from mdast-util-to-hast's releases.
13.2.1
Fix
ab3a795 Fix support for spaces in class names
Types
efb5312 Refactor to use @imports
a5bc210 Add declaration maps
Full Changelog: https://github.com/syntax-tree/mdast-util-to-hast/compare/13.2.0...13.2.1
13.2.0
Types
24f4576 Add type for data.meta on elements to hast
Full Changelog: https://github.com/syntax-tree/mdas...
Looks like @actions/core is no longer a dependency, so this is no longer needed.
Looks like eslint is no longer a dependency, so this is no longer needed.
Looks like @eslint/js is no longer a dependency, so this is no longer needed.
[discord/discord-api-docs] New comment on pull request #8122: Bump @types/node from 24.0.8 to 25.2.2
Looks like @types/node is no longer a dependency, so this is no longer needed.
actually that breaks (diff is in dm)
Replaces Collapsible with Accordion
My project is also severely limited in the ability to use models without this feature.
1d5ddc8 Fix component examples and images - anthonydiscord
Collapsibles are now Accordions (and we have groups!). We were also able to get rid of nested collapsible sections that had example images because we can resize them nicely now.
fed3548 Fixed a few more spots - anthonydiscord
Fixed these along with some other things in this PR!
You can just mintlify dev in the root to see docs locally
These endpoints are just not rendered anymore?
<img width="1118" height="493" alt="Image" src="https://github.com/user-attachments/assets/e89525c7-12b8-401f-b400-25f1cc0ca404" />
Same on some other pages like for guilds.
looks like that is due to the page missing the Route import - fixed in #8130
I've fixed this issue, the reason should display after you reload the client!
I've fixed this issue, the reason should display after you reload the client!
Hello Discord API Team,
I would like to ask whether there is any supported pathway for programmatic server creation via OAuth for verified applications.
Currently, bots cannot create servers and the server.create scope is not available.
There are legitimate use cases where an external application helps a user configure a community before deployment, and a smoother server creation flow would reduce onboarding friction.
Is there:
- A verified app pathway?
- A partner-only feat...
You don't need to create the server to help a user configure it, your app just needs to be invited with the correct permissions. There's no reason for apps to be able to create servers on their own and according to Discord themselves, it was removed due to security concerns so the likelihood of it returning is almost certainly zero
Im building an app that allow user to create the structure from the app (its easier for people who have no experience with discord) and I wanted them to be able to deploy it on discord and it would be automatically created (server + structure and optimizations).
Your app can still do so, the user would just need to invite it to an existing server with the correct permissions
but thats the whole point of my app, that the user doesent need to create the server himself and invite the bot.
My bot does everything
There's zero need to create the server programatically and it's not that hard for a user to create a barebones server for it to use themselves. As long as you provide them with an adequate invite link for your app (i.e. including any necessary permissions) then it can do exactly what it needs to in an existing server.
If your app is pointless without creating the server then it was always going to be pointless as there's never been a need for apps to own servers
I don't think this is happening, was removed due to safety as GamingGeek mentioned, I get your idea, but it's much safer and less exploitative by inviting the bot, without create.server
Thanks for the insight — I agree that technically creating a barebones server manually isn’t difficult.
My goal isn’t to bypass that step for the sake of automation alone, but to reduce friction and create a seamless onboarding experience for non-technical users who may not be familiar with Discord’s structure, permissions, or configuration complexity.
The core value of the app is in generating and deploying a fully structured server (roles, permissions, categories, automations, etc.) i...
yeah but i will then work around the user creating server and then inviting bot into the empty server
409c2f3 Update readme on how to do local preview (#8129) - colinloretz
96638de fix page titles and routes (#8130) - advaith1
eded7a4 Fix component examples and images (#8128) - anthonydiscord
Description
https://discord.com/developers/docs/topics/permissions#role-object-role-flags
Describes Role's colors property as non-nullable, but I just bumped into a decoding issue because it was null.
Steps to Reproduce
Can provide more info if needed, but only I can run the integration tests of my library since it required my test-bot's token.
This is the CI that failed, not sure if you can see the logs or not:
https://github.com/DiscordBM/DiscordBM/actions/runs/21912720746/j...
can you supply more details? it is not clear from your logs.
eg
- which endpoint?
- under which conditions?
So this is actually insane. Seems someone can just DOS an oauth flow and kill EVERYONE'S ability to use the discord oauth api.
Even if not on a shared IP. And I can't blanket rate limit the [...nextauth].ts endpoints because those get called from discord's server during the oauth flow (and then MY rate limiting breaks the login flow for EVERYONE)
Also seems like it is anathema to high level scaling.
Why oh why discord, with the IP rate limiting 😢
d44c28b Remove legacy game SDK navigational item - abe-discord
Remove legacy game SDK navigation item but keep the page.
043eef9 Remove another game SDK nav reference - abe-discord
19417c8 Remove extra comma - abe-discord
3f1758d Remove legacy game SDK navigational item (#8133) - abe-discord
[discord-api-docs] Branch anthony/radio-checkbox-components was force-pushed to `59b2334`
51efdbb Fix tables but newer - anthonydiscord
Appears to be GET /guilds/xxx/templates, the relevant output is on line 64 of the log. I see the same on my own test server, all the template roles have "colors":null. My template was created in April 2020 which I presume was before the colors field was invented, though that's probably not relevant since MahdiBM's one says it's from today.
[{"code":"JuZJyS4wwcyv","name":"Test", [...] ,"serialized_source_guild":{"name":"Polsyzone", [...] ,"roles":[{"id":0,"name":"@everyone","permissions":1041...
Exactly as @Polsy mentioned. it's from serialized_source_guild.roles array in a guild template. The docs (not the openapi spec) don't mention that.
1a7b5d0 Conextually group accordions - anthonydiscord
I didn't realize that existed 😅
Just tested it and it didn't change rendering of the comments but for correctness I'll add it!
b58098a Jason C instead - anthonydiscord
"custom_id": "click_yes",
"label": "Accept",
"style": 1
"custom_id": "click_no",
"label": "Decline",
"style": 4
[discord-api-docs] Branch anthony/community-invite-udpdates-3 was force-pushed to `ab29fb7`
c0bc197 Make it minty - anthonydiscord
f002200 Fix links - anthonydiscord
It would be great to have a bot that streams content to the channel. At this point, we need to have a special person in the channel who streams.
Any recent thoughts on the subject?
this is probably because <h6> headers have no id="" attribute unlike rest of headers <img width="235" height="44" alt="obraz" src="https://github.com/user-attachments/assets/654888b7-ac6a-4fb2-af08-ff4ae2551ff1" />
Mark mobile (Android, iOS) and modern consoles (PS5, Xbox Series X|S) as Generally Available. Linux and legacy consoles (PS4, Xbox One) remain Experimental.
b2e5ac6 Add more details for the community invite break... - anthonydiscord
88234df Update platform support levels for mobile and m... - markmandel
105c70f Update developers/components/reference.mdx - anthonydiscord
34b1c43 Update developers/components/reference.mdx - anthonydiscord
97c64d7 Fix spacing - anthonydiscord
1d20d9d Add Community Invite Guide - anthonydiscord
We're launching a guide to showcase the new invite endpoints and functionality. It has examples on how to create invites with roles through the UI and API and how to restrict access to an invite using target_users through the API. This guide highlights use cases for community servers and walks through steps for creating and sending invites that grant roles or restrict access to specific users.
d4fb514 Fix link - anthonydiscord
Once a user accepts an invite and receives the roles, those roles remain even after the invite expires or is deleted. You'll need to remove roles manually (via a bot or Discord's interface).
not blocking nit.
I'd really like a link to the reference here:
In this example we’ll show you how to grant roles as part of an invite using the channel invite API
(add link to bolded part)
Also link to reference here would be nice
"for us" reads a touch strange to me. I was like "for using the Discord client - I use it all the time".
I'm almost tempted to say remove the subheading (For use in the Discord Client: and For API integration:) - since you need all the prerequs -- especially, as you don't have two sections in this doc that these line up to.
The other option is to move the sub-prerequs into their relevant sections further down?
Description
The GET guild role member counts is no longer in the docs. The link from the changelong entry to the endpoint doesn't show anything
Steps to Reproduce
- Open a browser and go to: https://docs.discord.com/developers/intro
- Scroll down and click on the
Guildsection/resource button Ctrl + F...
Hi,
"erkinalp" .. does not compute.
Sorry, no, I do not know anyone by that name or nickname.
Cheers,
su
čt 12. 2. 2026 v 1:13 odesílatel broman @.***> napsal:
erkinalp is that you
—
Reply to this email directly, view it on GitHub
https://github.com/discord/discord-api-docs/discussions/3234#discussioncomment-15775501,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAWPE62EEXXKI2OYVVODFDD4LPARTAVCNFSM6AAAAACEPWTU5KVHI2DSMVQWIX3LMV4...
5f91912 Update developers/tutorials/using-community-inv... - anthonydiscord
I was initially thinking of making this two separate guides. One for API and one for the client. Let me think on this a bit but I do think moving the prereqs to their specific sections makes more sense.
@Droid00000 thanks for reporting this. This and a few other lines got mixed up in the migration. We'll have those fixed in a PR shortly!
The documentation says serialized_source_guild is "partial guild". Partial guilds's roles elements are always a normal role object, not a partial role object, so this whole thing feels weird if you're not directly using the openapi files + an openapi generator.
Nicest thing would be for Discord to repair the colors there IMO. Not sure what other objects are also affected by possibly having nullable colors.
So for clarity, I'm trying to update the APIs of my library after like 1.5 years (almost done with it) so yeah I've forgotten some stuff ...
One of them is this comment, from 2 years ago:
<kbd> <img width="1078" height="266" alt="Image" src="https://github.com/user-attachments/assets/3666a581-9384-4e67-b3b0-fc7918dd5312" /> </kbd>
So ... at least I only need to change this Role type's properties, not the actual main Role's. Therefore this issue is not as bad I thought for the library an...
We lost a few recent changes in the migration.
Went back through all merged PRs since 93ec470c4884019cb388b4e0ad95bcd32ffc9271 and readded what was missing.
Fixes #8137
| roles?\* | array of partial [role](/developers/topics/permissions#role-object) objects | the roles assigned to the user upon accepting the invite. |
b9a17af Update developers/resources/invite.mdx - colinloretz
0b06aac Better prereqs - anthonydiscord
For now I split the prereqs out into each section because they're all 3 different, LMK if this feels better to you!
98054dd Mintlify Migration Content Fixes (#8138) - colinloretz
bda09b3 Update docs logo + url (#8134) - colinloretz
4c8f68a Add policy and terms redirects - colinloretz
Adds /developers/* redirects in addition to the /developers/docs/* redirects for monetization policy, developer policy and developer terms
0eaf9c7 Add policy and terms redirects (#8139) - colinloretz
Added comprehensive guide for Publisher Level Account Linking in the Social SDK, including:
- Complete documentation on parent-child application hierarchy
- Token exchange flow for both Discord and provisional accounts
- Integration guide with code examples
- Token lifecycle and revocation details
- Updated navigation and changelog
4ebac26 Modal Radio and Checkbox components (#8123) - anthonydiscord
98054dd Mintlify Migration Content Fixes (#8138) - colinloretz
bda09b3 Update docs logo + url (#8134) - colinloretz
0eaf9c7 Add policy and terms redirects (#8139) - colinloretz
4ebac26 Modal Radio and Checkbox components (#8123) - anthonydiscord
bff4932 Merge branch 'main' into anthony/community-invi... - anthonydiscord
The boolean components (Checkboxes, Checkbox Groups and Radio Groups) were just released! 🎉
https://docs.discord.com/developers/change-log#radio-groups%2C-checkbox-groups%2C-and-checkboxes-in-modals
That warning is basically true in that most of the documented RPC behavior, including connecting over WebSockets, is deprecated and only available to private beta partners from long ago. Connecting over IPC, the standard method, is not documented yet.
Nice, it might be worth adding a tip stating that "community" invites are not limited to community servers
This seems to be the same for all links that are on the same page. See guilds, interactions, etc.
fixes #7963
not sure why these files didn't get the manual anchors like the rest, but claude fixed them with some python, and also found some broken links
I have updated the information related to Checkbox, Checkbox Group, and Radio Group Components (aka Boolean Components)!
There are only 4 feature requests left in the list 👀
c22a274 Update wording - anthonydiscord
a9da688 Add Community Invite Guide (#8136) - anthonydiscord
Description
SKU not found error occurs when attempting to purchase server products on clients, we've never had issues with this before it has been working fine for over a year until today we received reports of people being unable to purchase server products.
Steps to Reproduce
When a user presses on Purchase on any product in the server products tab, it gets stuck loading.
Example culprit products:
https://discord.com/channels/831083226319552542/shop/1213209385380089927
https://d...
I was doing spot checks, but couldn't find this anchor in our docs codebase. Is this referenced outside of our docs?
https://github.com/search?q=repo%3Adiscord%2Fdiscord-api-docs+"%23role-select-examples"&type=code
Description
This bug existed before the release, but it still hasn't been fixed.
Instead of the understandable error "options is a required field", the server returns 500 Internal Server Error
Steps to Reproduce
Respond MODAL to the interaction with data:
{
"custom_id": "test",
"title": "Test",
"components": [{
"type": 18,
"label": "Checkbox Group",
"component": {
"type": 22,
"custom_id": "checkboxgroup"
}
}]
}
Expected B...
dd06455 Add Discord Social SDK 1.8.13870 changelog entr... - markmandel
We have identified the issue and a fix is in the process of being deployed. We will also be adding regression tests to try to prevent this from happening again.
thanks for the report, I am merging a fix for this now
A quick update to bring docs more in line with our internal response models:
- renames "Passthrough Message" to "SDK DM Message" for clarity
- adds
activityandapplicationfields - removes deprecated
channel_idandrecipient_idfieldschannel_idwill continue to be serialized- I don't believe we've ever serialized
recipient_idfor webhook events -.-
Also as a general fyi - channel.recipients used to be inconsistent on whether it omitted the sender or not. It shou...
Please fix the table formatting 😄
Running npm run fix:tables from the tools folder will format your markdown tables nicely 👍🏻
9ff2ba6 fix table formatting - Auralytical
Not sure if this is linked somewhere but this matches the anchor in the old docs so it is possible someone has linked to it. Same for the other ones
f065e42 change action row child components link - advaith1
thanks for reporting! I've fixed these in #8142.
thanks for reporting! I've fixed these in #8142.
I'll voice a 2026 ask for this as well. I also greatly hope this gets implemented as soon as possible with modals as this is definitely a heavy restriction that would open a lot of potential for modals in being the de-facto method of providing input that is more accessible over mobile especially.
look at bro tryna get credit 😭😭😭💀💀💀
This comments is why github needs a downvote function
This comment is why github needs a downvote function
+1
This comment is why github needs a downvote function
+1
This comment is why github needs a downvote function
+1
+1
look at bro tryna get credit 😭😭😭💀💀💀
fr fr
look at bro tryna get credit 😭😭😭💀💀💀
You have 0 bitch doing this Saint Valentine Day
look at bro tryna get credit 😭😭😭💀💀💀
You have 0 bitch doing this Saint Valentine Day
Your right the Alpha is always alone
look at bro tryna get credit 😭😭😭💀💀💀
You have 0 bitch doing this Saint Valentine Day
Your also reading the discord docs on Saint Valentine Day. Im Cyberbullying my friend there is a difference.
Hello everyone.
By this PR, I'm trying to propose DiscordBM as a "community library" to be added to the community resources in Discord docs.
Please let me know if there is a better place to do this.
Also I don't mind if this PR gets rejected. I just thought it's worth proposing since I see no Swift libraries in the list.
Why
DiscordBMis in Swift's Official SSWG (Server-Side Working Group)'s incubation program since 2023, which tries to ensure longevity of the projects. See...
Thanks for the link @Soheab.
I understand that there is a "revamp" coming in sometime, and I also do realize that DiscordBM likely doesn't have "1000 active bots".
I'm still hoping for the possibility to hear something like this:
https://github.com/discord/discord-api-docs/pull/7157#issuecomment-2993096750
In the sense of "It is quite feature-complete and is practically the only discord library out there for C Swift.".
(DiscordBM is practically the only Swift library. The oth...
i have to respect the guerilla SEO attempt
This is the only anchor linked to in the Serenity library docs that is still missing following the Mintlify migration.
Description
If the title of changelog its large the box can hide text
Steps to Reproduce
Expected Behavior
The text its reduced or not hide another part of the site
Current Behavior
The title hide part of the site
Screenshots/Videos
Client and System Information
Chrome ...
oh was this a header before?
I had to check Wayback Machine to make sure, but seems so. I considered changing the link to the "Formats" anchor just above, but figured we might not have been the only library/site linking to the styles, so I made a quick PR.
Description
The info icon for info-alerts (probably other alerts as well) are not properly centered where it's only one line of text.
Steps to Reproduce
Example: https://docs.discord.com/developers/events/webhook-events#subscribing-to-events
Expected Behavior
Centered icon (vertically)
Current Behavior
not centered icon (vertically)
Screenshots/Videos
Client and System Information
Brave, MacOS Tahoe 26.2
Thanks for the PR!! We're discussing if we want to keep comments in JSON like this in the docs (since it's invalid JSON) or if we want to convert some of these to .js to make them valid with comments. Going to leave this open for now until we reach a conclusion but I wanted to let you know what was up!
I also wanna bump this again, it would be a reallly good feature! I also think this ain't that complicated to implement.
One could restrict it to single-line text inputs and the logic would be nearly the same as for Slash commands.
Is it possible to have these migrated to the parent app? If so that would be a good note!
OAuth2 and Provisional account calls using child application IDs will fail. Only the publisher application can be used
We referred to at as child applications above and I feel like game application here sounds ambiguous
Replace "NSFW" terminology with "age-restricted" in human-readable documentation to reflect Discord's granular content restriction model.
Changes:
- SDK linked channels: Update table labels and code comments
- Channel resource: Update field descriptions for nsfw field
- Guild resource: Update nsfw_level to "age-restriction level"
- Threads: Update section header and description
All API field names, anchor IDs, and enum values remain unchanged for backwards compatibility. Added suppo...
2fa6f14 Update SDK documentation to use "age-restricted... - markmandel
Unfortunately not - just deletion to create a clear slate.
You guys are backwards. He's completely right
whatever helps you cope bud lmfao
cope with what
Sent from Proton Mail for iOS.
-------- Original Message --------
On Wednesday, 02/18/26 at 22:41 broman @.***> wrote:
whatever helps you cope bud lmfao
—
Reply to this email directly, view it on GitHub, or [unsubscribe](https://github.com/notifications/unsubscribe-auth/B3CK3RGN4H4RB54C6R4SOMT4MTL63AVCNFSM6AAAAACVTGT6WGVHI2DSMVQWIX3LMV43URDJ...
Description
Under the File component, it has the name and size fields, in other components that behave similarly, these are ?'ed out. For File they are not ?'ed out. Should they be ?'ed out?
For instance, compare Unfruled Media Item's fields to File's fields.
Steps to Reproduce
N/A
Expected Behavior
N/A
Current Behavior
N/A
Screenshots/Videos
No response
Client and System Information
N/A
This is working as intended today.
- Webhooks can add users to public threads.
- Webhooks can add users to private threads that were created by the webhook.
- Webhooks cannot add users to private threads that were not created by the webhook.
Conceptually, only someone who is already "in" the private thread is supposed to be able to invite another person in. Webhooks don't really have a "presence" in a thread (only its enclosing channel) so they break this model - that's why they have ...
fbad3d7 [docs] Mark File component name/size fields as ... - brad-discord
Marks name and size as optional (?) in the File component documentation table.
Generated on selentic
Both fields are server-populated from the referenced attachment and cannot be provided by clients. The descriptions already say "This field is ignored and provided by the API as part of the response", but the field names were missing the ? suffix that similar server-populated fields on Unfurled Media Item use (proxy_url?, height?, width?, content_type?, attachment_id?).
Fi...
Good catch, thank you! name and size should be marked as optional (?) in the File component documentation. I'll get a fix out soon.
Preview:
<img width="1642" height="1074" alt="image" src="https://github.com/user-attachments/assets/f0bb1945-4ae7-4895-b54b-73a6d187e13a" />
Description
interaction info is missing when you reply from a modal (without the command interaction) as a ephemeral message
Steps to Reproduce
what i did was use a command that opens a modal (without replying), when i submit the modal does it reply with a ephemeral message, the reply does not have interaction info / it just loads forever
Expected Behavior
It should show the interaction info as it does on non-ephemeral messages
In the case of the shown screenshot should it di...
1b4b566 [docs] Mark File component name/size fields as ... - brad-discord
Hi @ziomek64, we believe this issue was fixed at the end of November 2025. Please reopen the issue if you are still facing the same issue. Thank you.
- Webhooks can add users to private threads that were created by the webhook.
I can't imagine a scenario where a webhook would be capable of being the creator of a private thread. A webhook can create a public thread as a consequence of forum channels (and only in forum/media channels), but creating a private thread would require the ability to specify a channel type for the created thread, and private threads are not supported in forum/media channels.
In summary, there is no scenar...
Found one more missing anchor that is linked in Serenity docs. It's also linked just above in the Discord docs (in Poll Results Object Structure), so this fixes that broken link too.
Thoughts on adding regex validation to the list of ideals? I know it's been mentioned a couple times :)
@colinloretz slight bump on this, it's still happening 👀
@brad-discord would you be kind enough to satisfy my curiosity — what is “selentic”?
Additionally (and this isn't an API issue but it is a major problem with the Membership Application feature)
- Second/third/etc applications are not flagged, allowing prospective members to whack-a-mole different responses to try and game the application system.
- "Interview" does not get flagged for other moderators reviewing applications, so it's very easy for one to approve while another is interviewing.
d25e86d Update changelog tag to "Discord Social SDK" fo... - markmandel
Just realised the tag on this changelog item is wrong, so fixing it.
012c8ce Update changelog tag to "Discord Social SDK" fo... - markmandel
Replaces the client-side chat moderation guide with a full server-side moderation workflow using the new moderation metadata REST endpoints.
Changes:
- integrate-moderation.mdx: Rewrote the chat moderation section to cover the server-side flow — webhook event subscription, PUT endpoint examples for DM and lobby messages, moderation metadata field reference, C++ client callback handling, content edit re-moderation, and a full sequence diagram.
- lobby.mdx: Added REST reference entry for t...
dfd8200 Document server-side message moderation metadat... - markmandel
Just doing some manual testing for what might become an automated workflow for external PRs.
Preview can be found here:
https://discord--pr-8158.mintlify.app/developers/intro
lemme just bump
idk if that does anything lol
Description
On February 14th, in embeds generated from a webhook message's link, the client displayed a thumbnail, instead of the actual video. However, a week later, I could not reproduce the issue on the client, but still could on the embed debugger.
Steps to Reproduce
The incorrect output can be seen in the embed debugger:
Description
If you replace a selector with a another selector of same type triggered by a first selection, even if it is not the same custom_id, the value is transferred to the new selector.
Steps to Reproduce
- Create a code in the language of your choice that replace the custom_id of a role selector component with an interaction edit
- Use the first selector, see that the value isn't reset
Expected Behavior
A reset of selection because it's a different selector
Curre...
Description
Whenever you run GET /channels/:ID/messages a few times, because you might want to get say the last (example) 10,000 messages, you end up hiting ratelimit, naturally. However the headers you are given are showing a value of either 999 or 1000 instead, and suddenly when you do hit the ratelimit, it then shows 0/5 remaing like it usually is doing. It does not gradually decrease in value and remains within the range of 999-1000 until the ratelimit hits.
Steps to Reproduce...
Description
The bot stopped receiving certain events on all of its shard sessions. Restarting the shards fixed the problem.
This bug occurred twice:
- February 16 (timestamp 1771310400)
- February 22 (timestamp 1771761600)
The affected events detected are:
- Interaction Create
- Guild Create (Someone said, the bot appear offline on new guild with this incident)
This bug does not affect all bots, only certain ones for reasons that remain unknown.
My bot is hosted in USA
Steps to Re...
+1
Happened to me on February 16.
I was no longer receiving GUILD_CREATE and was still receiving some gateway events from guild my app wasn't longer in after the incident.
App ID: 276060004262477825
Also had the same issue February 22nd around the same timestamp, Appearing offline on new servers and not receiving interaction events
Restarting shards also resolved the issue for me.
Bot ID: 472911936951156740
update: seems to also happen on occasion when using a normal message edit request, not limited to only an interaction update
@afgiel. Hey. Any updates? This error is still blocking us from sending some replies to users — even messages about this error. Users just see silence and assume the bot is broken, not your API.
This has been open for almost a year now. If a fix isn't coming soon, can you at least provide a workaround? Some way to predict this error without actually hitting it — so we can fail gracefully and tell users something went wrong."
@DV8FromTheWorld @OoLunar Hey. Any updates? This error is still blocking us from sending some replies to users — even messages about this error. Users just see silence and assume the bot is broken, not your API.
This has been open for almost a year now. If a fix isn't coming soon, can you at least provide a workaround? Some way to predict this error without actually hitting it — so we can fail gracefully and tell users something went wrong.
Same here. Stopped receiving the GUILD_CREATE event but received other events for the new guilds just fine. Restarting the shard solved the issue for me.
I've had issues with this for at least a year and just started investigating today to find that shards start to no longer receiving the GUILD_CREATE event randomly. Maybe this is just a part of the issue, but definitely one that needs fixing from Discord's side.
App ID: 678344927997853742
The workaround is to not hit the payload limit
The workaround is to not hit the payload limit
What's limit? What does the payload include? The body being sent?
@Lulalaby What's limit? What does the payload include? The body being sent?
+1
Exactly the same issue. It started on February 10.
App ID: 708616355024207884
- Add more callouts for Presence vs Comms scopes
- Add more detail when using scopes in the SDK for the first time via C++, Unreal and Unity guides
- Fix default scopes in Unreal
- More explicit title for Oauth2 Scopes page under Social SDK for search
Add rss: true to change-log.mdx frontmatter to surface the auto-generated RSS feed with a discoverable icon at the top of the changelog page.
3e50399 Enable RSS feed for changelog page - markmandel
Actually, I'm not sure this will show up in preview, since:
<img width="478" height="176" alt="image" src="https://github.com/user-attachments/assets/476a1c4f-7ad3-4347-b3c1-db75199cac04" />
This is what I see locally
<img width="1098" height="229" alt="image" src="https://github.com/user-attachments/assets/fec4fe31-07bf-4ee0-b8ff-3eda6a47e788" />
Not sure why I'm getting the copy dropdown in local dev, but not on a preview.
[discord-api-docs] Branch voice/no-dave-close-code was force-pushed to `5cc8f8c`
Document the close code for sessions with no DAVE support in a channel that requires E2EE/DAVE. This will start being sent to clients from March 2nd, 2026.
8dcda90 [voice] document 4016 as DAVE required close code - birarda
[discord-api-docs] Branch voice/no-dave-close-code was force-pushed to `bc70dba`
[discord-api-docs] Branch voice/no-dave-close-code was force-pushed to `9d502a5`
6a736a2 add E2EE to description - birarda
eebfe6d [voice] document 4017 as DAVE required close co... - birarda
+1
Happened on Feb 16, around 12am-3am EST.
Bot ID: 760027263046909992
OK there is a bug where this value did not get indexed. I am fixing this for future indexed messages but this will remain missing for historical messages unless they get edited. This is not deprecated.
Looks like this has been fixed!
This is because you are using a deprecated API version - use /api/v10 to get good errors.
Description
When a modal includes a radio group component with a default selection, the default selection does not render (i.e., does not visually show as selected) on mobile. This is only a visual issue; the default selection is properly submitted when the user submits. Occurs on both iOS and Android.
Steps to Reproduce
Use a radio group component in a modal with a default radio group option defined.
Expected Behavior
The default radio group option should render as selected ...
I guess because it was rolled back and now released again and it seems it was fixed then ^^
Hi all,
Thanks for the reports. This lines up with some of our internal monitoring that we're actively investigating. I did have a couple questions that will help us nail this down.
- During this time, was your bot still sending heartbeats/receiving heartbeat ACKs? Given the symptoms I'd imagine so, but confirmation would be appreciated.
- To confirm, the outage you saw were primarily affected actions that were directly sent to your bot, not ones that were sent from a guild, correct? I n...
Hi all,
Thanks for the reports. This lines up with some of our internal monitoring that we're actively investigating. I did have a couple questions that will help us nail this down.
- During this time, was your bot still sending heartbeats/receiving heartbeat ACKs? Given the symptoms I'd imagine so, but confirmation would be appreciated.
- To confirm, the problem you saw primarily affected actions that were directly sent to your bot, not ones that were sent from a guild, corre...
Hello,
- I think that if we stopped sending heartbeats, the shard would be considered invalid and would therefore have been closed, so I think my library continued to send heartbeats.
- I do think that's the case, as we were no longer receiving bot-related events such as GUILD_CREATE, INTERACTION_CREATE, and VOICE_SERVER_UPDATE.
However, I was receiving GUILD_DELETE in normal quantities.
Description
Given a CV2 message with media (image/video), forwarding the message to a DM produces a gray box instead of the actual media when viewing on desktop, but not on mobile.
Steps to Reproduce
- Create a CV2 message. Here is a sample JSON:
{
"type": 17,
"accent_color": 1941746,
"components": [
{
"type": 10,
"content": "**Apple ([@Apple](https://x.com/apple))**"
},
{
"type": 10,
"id": 1,
"content": "The wait is over. In...
I'm not able to reproduce this issue, sending as a user and as a webhook both appear to be embedding correctly. Can you include the exact payload you're sending to the webhook in order to reproduce this?
Users cannot see their own Rich Presence Invite, which is a common source of confusion during development. Adds a Warning callout to the "Sending Game Invites" section and upgrades the existing test account note in the Rich Presence overview to a Warning for better visibility.
431dc5f Warning callouts for test account usage on Rich... - markmandel
"metadata is sent via webhook events but is not included in webhook events"
f52cc3d [social sdk] More obvious scope callouts in SDK... - colinloretz
Currently not only invites, but also any custom buttons are not displayed for users own Rich Presence. Is this intended?
Currently not only invites, but also any custom buttons are not displayed for users own Rich Presence. Is this intended?
Yeah it is - but that's a good one. Lemme add that they also don't show.
👍🏻 This has been changed now to:
Metadata is never exposed to other applications and is not included in other API endpoints or Gateway events.
Thanks for the report; I've added webhook ID support to author_id!
Actually - I'll do this in a separate PR. I've got a tracking item to include a section on clickable buttons in the Rich Presence guide, since they aren't covered right now.
@advaith1 @devsnek I removed the character limit from the slash command and confirmed that although the text that autofills the field is the 'nice'
name, it passes the 'ugly'valueinto the slash command handler. This is a weird position to be in, because I can't use autocomplete with a nicename. Is there any way to have it autofill just the value? It seems counter-intuitive to do it this way, not at all what I expected.
Y...
Extra link bracket
| messages \[1\] | array of array of [message](/developers/resources/message#message-object) objects | A nested array of messages that match the query |
also I think usually we use asterisks instead of [1]
yea we plan to standardize that mess later. Asterisk-driven documentation 💀
Due to speed optimizations, search may return slightly fewer results than the limit specified when messages have not been accessed for a long time.
| include_nsfw? | boolean | Whether to include results from age-restricted channels (default false) |
fwiw this is called sort mode not type
Could this maybe also say that you have to use offset to paginate when sorting by relevance? Or I dunno if that's already meant to be implied
you need to use offset to paginate anyway, this just means that searching by relevance doesn't use the asc/desc order
Is it possible to add a new parameter to Message objects, such as attachments_used, to keep track of attachments in components/embeds? Would be very useful now that components v2 can use attachments and you'd like to grab the attachment id to keep it in the same message.
Currently with embeds you have to grab the attachment id by grabbing the attachment url and parsing it, if you want to re-use it.
Like this:
const url = context.user.avatarUrl;
const extension = url.split('?'...
Description
I have noticed an inconsistency in how emojis are rendered in Voice Channel statuses. While standard Server Emojis work perfectly, Application Emojis (uploaded via the Developer Portal for a specific app/bot) do not render visually when used in a voice channel status.
Instead of displaying the image, the client only shows the text representation (e.g., :emoji_name:), even though the correct Markdown/ID was used.
Observed Behavior:
The Application Emoji is not parsed into an...
I'd also love to see autocomplete for discord modal short text entry fields!
Are you able to reproduce this behavior if setting the channel status using the app? This behavior is intended when trying to set this as a user, as the only account with access to use an application's emoji is the app/bot itself.
@Rodentman87 I'm not a bot: |
I'm simply observing that if I try to edit a channel using my bot, the emoji doesn't display correctly (view the original message for details)
Yep that's expected, I mentioned that on the 14th it was broken on the client, then i noticed it was fixed a week later, only the Embed Debugger is affected right now, which is why I brought up this issue, in case those two were related.
To clarify, I'm asking if you're trying to set this channel status using the client or via the API (and whether you're using your user account to do this or your bot). It looks like the endpoints for setting the voice channel status are undocumented, so I want to clarify which of the two you're asking about here.
ah, must've missed that sentence in your original post, I can definitely reproduce this in the developer portal, thanks for the extra info.
4bc215a Clarificiations for provisional account unmerge - markmandel
- Clarify external_auth_token usage post unmerge,
- Update data migration behavior during provisional account unmerge to be comprehensive.
876c992 Fix incorrect token revocation URL in Social SD... - markmandel
The revoke_token example was calling /oauth2/token (the token exchange endpoint) instead of /oauth2/token/revoke (the revocation endpoint).
d46cef0 Update Provisional Account Token Timeouts - markmandel
I've been testing provisional accounts, and they return an access token that expires in 7 days, not 1 hour.
I try to set this with discord.py
If you want I can take a screenshot of part of the code
To clarify, I'm asking if you're trying to set this channel status using the client or via the API (and whether you're using your user account to do this or your bot). It looks like the endpoints for setting the voice channel status are undocumented, so I want to clarify which of the two you're asking about here.
If you are setting this via your bot, could you please provide the endpoint and payload you're sending that would be helpful in trying to reproduce this issue
User is using t...
The workaround is to not hit the payload limit
kind and efficient help
Description
When a user attempts to submit a Bot's Modal which contains multiple Selects, the user's Discord client will soft-crash to the Nelly screen.
This was tested using Modals that contained at least 2 Selects, and both Selects were of different types. The Modals were trigged from a Button in an ephemeral message.
Steps to Reproduce
- Respond to a Slash Command with an ephemeral message, and that message should contain at least one Button (not Premium/SKU/Link type).
- The...
Is it necessary to first respond to the interaction CHANNEL_MESSAGE_WITH_SOURCE with the button, and then MODAL, or can immediately respond to the command with MODAL?
It seems that the problem affects all Select components with autocomplete; one Select component with autocomplete is enough to reproduce the error.
Yes, exactly! As you noted in your edit, that is exactly the PR and the payload being used under the hood by discord.py.
Since I offered it earlier, here is the exact snippet I'm using, just to give you the full context:
# The ID used here is the Application Emoji ID from the Dev Portal
emoji_markdown = ":86097nervoussweating:"
await voice_channel.edit(status=f"{emoji_markdown} test")
Ok, thanks for the extra details, I've got this added to our internal bug tracker
It seems that the problem affects all Select components with autocomplete; one Select component with autocomplete is enough to reproduce the error.
Updated with the new-found (more accurate) reproduction steps :)
Another clarification: the bot must respond to the modal interaction; if it doesn't, a crash won't occur.
It seems the crash occurs when the modal window closes.
I found a way to work around this crash: close the modal window before the bot responds.
You can use this until it's fixed.
Thanks for the report! This is fixed in alpha/beta and will be fixed in next week's stable release.
Thanks for the report, this has been fixed if you reload!
Description
The permission Set Voice Channel Status is a thing but it's not in the docs yet.
Steps to Reproduce
Go to https://docs.discord.com/developers/topics/permissions#permissions-bitwise-permission-flags
Expected Behavior
That this permission is documented
Current Behavior
It's not documented
Screenshots/Videos
No response
Client and System Information
Browser: Brave
OS: MacOS
[discord/discord-api-docs] New comment on issue #8176: "Set Voice Channel Status" Permission missing
The permission and endpoint are intentionally not documented yet because it is not considered stable.
[discord/discord-api-docs] New comment on issue #8176: "Set Voice Channel Status" Permission missing
The permission and endpoint are intentionally not documented yet because it is not considered stable.
makes sense
Summary
Adds clarification for the min_values constraint when using select menus or other components with a min_values field inside label components with required: true.
Changes
Added a note to all components stating:
*
min_valuesmust be either omitted or at least1ifrequiredis omitted ortrue.
Reordered the \* note order to ensure it stays consistent.
Used the phrasing requested by @anthonydiscord in my last PR (https://github.com/discord/discord-ap...
Title. Mostly copied from the unofficial docs.
75df9c9 Bump minimatch in /tools - dependabot[bot]
Bumps and minimatch. These dependencies needed to be updated together.
Updates minimatch from 3.1.2 to 3.1.5
Commits
7bba978 3.1.5
bd25942 docs: add warning about ReDoS
1a9c27c fix partial matching of globstar patterns
1a2e084 3.1.4
ae24656 update lockfile
b100374 limit recursion for **, improve perf considerably
26ffeaa lockfile update
9eca892 lock node version to 14
00c323b 3.1.3
30486b2 update CI matrix and actions
Additional commits viewable in ...
+1
It happened now for me on Feb 28, around 10:46 AM-06:00 PM EST. Hosted in the EU.
Bot ID: 884800931819048980
INTERACTION_CREATE, MESSAGE_CREATE, GUILD_CREATE, nothing from these 3 events. Sadly I don't monitor more.
Shard was fully fine for all these hours and still online.
Around 3 PM UTC, I did not receive the INTERACTION_CREATE event on two bots, though MESSAGE_CREATE was functioning as expected. A RESUME action did not resolve the issue; only a full re-identification successfully restored functionality.
Bot ids in this message: #large-bot-devs message (have to keep them private)
Hello,
We've identified the issue that was causing this behavior and have implemented a fix as of 2026-02-28 at 14:48 PT. If you see this behavior reoccur, let us know and we'll investigate further.
Currently we have applications to run viewports, but this is something more geared toward developing minigames and more complex systems, as it isn’t practical for a simple custom form use case.
It would be interesting to introduce a new component called “viewport modal”, where we could render our own page inside a form (necessarily a form), which would then post to the API, working just like a regular modal, where you receive the responses in the same way.
The ability to create a custom...
Duplicate: https://github.com/discord/discord-api-docs/discussions/7294
I don't know if they have plans to open them more broadly (after all, it's the same techno than activities which are already open to basically everyone), but considering they are currently releasing new component types regularily since a few months, it may make sense that they first want to release "first-party" components first before allowing modal iframes.
Still trash, not even with nitro we can share HDR content
@mrkirby153 Hi, I'm getting this event again (also got around the time as kpodp0ra) and it seems like all of my bots are having issues with slash commands (including http interaction ones). Some just don't get sent to me and others when I respond to just give me errors:
Error with InteractionCreate handler: HTTPError: Service Unavailable
@RiskyMH This is likely unrelated. If you see this pop up again please open a new issue.
@RiskyMH This is likely unrelated. If you see this pop up again please open a new issue.
cool will do if i see it, but I'm pretty sure that I sent a lot more slash commands than i got errors for
but in anycase this was like only an issue for a few mins so not too bad
@imacodr Checkboxes are now possible in Modals!
_https://docs.discord.com/developers/change-log#the-new-components_
You can kinda of do this with modals now as you have the text display component that can display just a message!
Background
I use a modal to configure most of my bot’s settings. It includes channel select components and text inputs from a simple slash command.
Observed behavior:
If a modal is opened and closed without submission, previously entered values are reused the next time the modal is shown, even if the user did not submit or change anything. Once the modal is submitted, the cache for that specific modal is cleared so not a worry about seeing old submitted data.
This persistenc...
Description
A forum post will fail to create if the payload includes a button with an SKU.
Steps to Reproduce
Replace :channelId with a forum channel id,`` with a token, and SKU_ID with an SKU id:
curl 'https://discord.com/api/v10/channels/:channelId/threads' \
--request POST \
--header 'authorization: Bot ' \
--header 'content-type: application/json' \
--data-raw '{"name":"test","message":{"components":[{"type":1,"components":[{"type":2,"style":6,"sku_id":SKU_ID}]...
A fix for this is rolling out now, if you notice the issue persisting after about an hour or so please open a new thread with the details, thanks!
Thank you so much! I'll try that tomorrow ;)
365fc00 Update Game Relationship settings - marie-work
Update verbiage to match Client side UI update
Ok, then I'll try to document this
I know that there is more to document but I don't have that much of experience with IPC
Description
I am experiencing persistent duplicate guild-scoped slash commands that cannot be removed via the API.
In a specific server, multiple slash commands appear duplicated. Each duplicate shows a different command ID. Only one set belongs to my active application.
The additional command IDs do not correspond to any existing application in the Developer Portal.
Clearing global commands, clearing guild commands, and forcing guild sync via the API does not remove the duplicates.
...
I suspect the "orphaned" command is in fact a global (i.e. non-guild-registered) command. If not, can you share a minimal code example that repros from a freshly created app?
Hi there! Just pushed a fix for this. Thanks for flagging!
8e0c5d0 move dates to labels, title to body - adds RSS ... - colinloretz
- Moves the dates and titles around so the change log is easier to read
- Adds RSS metadata
Should the items from here forward also be title and description ? or we skipping them?
summary
- add info callout noting that animated WebP/AVIF images don't convert cleanly to GIF, use WebP output instead
- update a_ hash prefix description from "GIF format" to "animated format" to reflect support for other animated formats
let's remove "also" in the following sentence
Description
Audit Log entries created from Bulk Guild Ban do not include a user_id to attribute the action to the account.
Steps to Reproduce
Ban any set of users with this endpoint. Example:
{
"user_ids": [
"905658191659040808"
]
}
The created audit log entry does not include a user_id:
{
"id": "1478531976024686734",
"action_type": 22,
"user_id": null,
"target_id": ...
The duplicate commands appear only in the guild and not in DMs.
I have:
- Cleared global commands via
tree.clear_commands(guild=None)and synced. - Cleared guild commands via
tree.clear_commands(guild=guild)and synced. - Forced a guild sync followed by a global sync.
- Verified only one active application exists in the Developer Portal.
- Verified that one of the duplicate command IDs does not correspond to any existing application.
After clearing globals, the duplicates remain visibl...
6ed8d75 Added RSS to the rest of the <Update> comps - colinloretz
2cfb853 Context Menu Command Updates (#8185) - advaith1
[discord-api-docs] Branch docs/revamp-changelog was force-pushed to `0b2af2e`
You can launch a modal (with your input prompt) and then .reply to have this behavior!
@imacodr Checkboxes are now possible in Modals!
_https://docs.discord.com/developers/change-log#the-new-components_
Summary
Discord on Windows enters an endless update loop (checking-for-updates -> update-failure) even after clean reinstall.
Environment
- OS: Windows 11 (10.0.22631)
- App: Discord stable 1.0.9227
- New updater logs show updater_client (reqwest/hyper)
What was tried
- Full uninstall/reinstall (including cache and Squirrel temp cleanup)
- Verified Update.exe and packages/RELEASES exist
- Switched VPN modes/nodes and tested both direct/proxy paths
- Tested WinHTTP/system pro...
Hey... 2026 here. issue still persists.
Hi! This is not the place for general bug reports; please contact support for general client bugs.
Description
Using the bulk ban endpoint returns an empty response on success instead of the expected JSON response. Important to note that the bans do go through, it's just the response ends up being empty.
I've had this been reported to me by at least 2 different library users so I don't think it's a one-off.
Steps to Reproduce
- Use
POST /guilds/{guild_id]/bulk-ban - Observe response being empty
Expected Behavior
Response is not empty
Current Behavior
Response is...
[discord-api-docs] Branch salar/gif-limitation was force-pushed to `4a07046`
[discord-api-docs] Branch salar/gif-limitation was force-pushed to `130597d`
ab3ea3c clarify animated image format handling in CDN d... - salarkhan
So, I am genuinely confused can I have my AI agent (like Claude or Codex) use a Discord bot to search for messages in a channel using this API? Does it violate ToS? I am not going to train the LLM on the data, since I am on Enterprise plan, I have even turned off the training feature in my AI agent. So, if I only use the agent to search discord to maybe fix issues is that fine?
I've confirmed that this is purely a client-side validation issue, the api as expected, accepts an empty string as input and sends that to the bot in the interaction payload.
Having the option in the required section is especially helpful for mobile input, as the option can still be effectively optional, but without requiring the extra click to select the option. Unlike desktop, mobile clients can't just press tab, so it can be pretty annoying for commands that are used frequently.
e642b14 Update debug & log guidance - colinloretz
38d81f0 Added note on logging severity levels - colinloretz
fbc5751 [social sdk] Update debug & log guidance (#8192) - colinloretz
Here is a rather janky solution I found to work around this problem. It only works under specific conditions:
- Community must be enabled for the server
- The server must not have any stickers (because as far as I can tell, you can't block someone from sending stickers with channel perms)
Steps:
- Enable
SEND_MESSAGESandUSE_APPLICATION_COMMANDSin the target channel. - In the target channel's perms, disable
ATTACH_FILES,ADD_REACTIONS,CREATE_PUBLIC_THREADS, pretty much any...
31e0705 Social SDK Hotfix Changelog - markmandel
- 1.8.14437
- 1.7.14433
- 1.6.14448
8d4f82a Social SDK Hotfix Changelog (#8193) - markmandel
Please do this. It’s frustrating that the two main text input methods for modern commands both have their flaws — slash command options can’t have newlines and modals aren’t WYSIWYG. I don’t so much mind the former constraint, I’d happily use primarily modals for longform text input if we had WYSIWYG.
In my case I’m currently running some of my modal text inputs through a handlebars parser with custom helpers so users can do things like {{channel "general"}} to create a mention without n...
The Channel object still mentioned the MANAGE_MESSAGES and MANAGE_CHANNEL permissions as the ones which enabled users to bypass the slowmode.
This information is incorrect after February 23rd, 2026. Only the BYPASS_SLOWMODE permission allows users to bypass the slowmode
This PR updates the information, replacing the old permissions with BYPASS_SLOWMODE.
I honestly don't remember turning on auto Copilot reviews. Not much of an issue lol
thanks! can you also update this in the endpoint docs in Modify Channel (guild channel and thread) and Create Guild Channel?
Bitrate was described as "in bits" throughout the documentation. Bitrate is measured in bits per second.
This PR fixes this simple mistake.
This PR try to make a little improvement to the notice about "modify" or "update" where all the parameters are optional or nullable, the most noticeable change its mark all that using "Note" and not Info/Warning for make consistent with all.
Bump this. Having commands without being able to change permissions for their subcommands is pretty pointless. One of the main features of slash commands is to show only commands that are available to the user. Not being able to restrict subcommands defeats the whole purpose of this because either you try to use a command and get a "you cannot use this command" or you have countless single commands that should be grouped together but aren't. I love slash commands, but they would be way more p...
Description
I don't understand, I'm trying to create an app, and site asks me to proof that I'm not a robot.
Steps to Reproduce
Login and try to create an app
Expected Behavior
I supose there should be capcha, that i need to do
Current Behavior
button cansel and X
Screenshots/Videos
Client and System Information
Win 11, Edge without any plugins
Summary
Fixed typos and duplicate words found across the documentation.
Changes
| File | Line | Fix |
|---|---|---|
change-log.mdx |
89 | attache → attach |
emoji.mdx |
118 | has the the → has the |
integrate-moderation.mdx |
131 | applies to to → applies to |
using-provisional-accounts.mdx |
532 | lost to to → lost to |
Summary
Fixes #8132
The colors property on the Role object can be null in practice, but the documentation currently marks it as non-nullable. This causes deserialization failures in typed API clients (e.g. Swift, Rust, Go) that rely on the documented types.
Changes
permissions.mdx: Role Object table —colorstype changed to?[role colors](nullable)guild.mdx: Create Guild Role params —colorstype changed to?[role colors](nullable)guild.mdx: Modify Guild ...
As the linked issue mentions, this is only the case in the inner role payloads of template guilds in the GET /guilds/:id/templates response.
aace025 Reorganize docs into tabs with content updates - colinloretz
This PR reorganizes the developer documentation into a tabbed structure with new overview and guide materials.
[!IMPORTANT]
This PR aims to reorganize the existing docs and introduce new guides and overviews for developers learning the platform. We are working on more improvements to the docs over the next few months. We will be revisiting our existing guides, creating new ones, and better organizing our Reference docs.
New Tabs
- Home
- Bots & Companion Apps
- Social SDK...
699f587 [next docs] Reorganize docs into tabs with new ... - colinloretz
f7eb90f fix animated image note block (#8191) - advaith1
add03b7 style: use Note for notice about all parameters... - Doc94
good catch on the Modify Guild Role endpoint reverted that change since the Info block already covers it. kept the fix on the Role Object definition (permissions.mdx) and Create Guild Role params since that's where typed clients pick up the type for deserialization. the template guild roles from GET /guilds/:id/templates is where this surfaces as mentioned in #8132
bbab96b Point banner to new docs changelog - colinloretz
7261388 Point banner to new docs changelog (#8201) - colinloretz
Summary
Fixed spelling errors and duplicate words found across the documentation.
Changes
| File | Line | Error | Fix |
|---|---|---|---|
guild-template.mdx |
4 | Guilt Template |
Guild Template |
message.mdx |
422 | will have have |
will have |
account-linking-from-discord.mdx |
103 | prefered |
preferred |
gateway-events.mdx |
627 | The\x60ENTITLEMENT_CREATE\x60 (missing space) |
The \x60ENTITLEMENT_CREATE\x60 |
gateway-events.mdx |
6... |
2a70631 fix: typos and duplicate words across docs (#8198) - Akenove
e8fec33 fix: spelling errors and duplicate words across... - Akenove
thanks for the quick merge! i have a couple more open if you get a chance — #8198 and #8199 (fixes #8132)
Consolidating all fixes into a single comprehensive PR. Sorry for the noise.
Summary
Ran an audit across Discord's public repos and found several issues. Consolidating everything into one issue instead of opening multiple PRs.
Bugs
discord/linked-roles-sample
- Metadata key mismatch:
register.jsregisters key asbakingsincebutserver.jspushes metadata asfirstcookiebaked— linked roles silently fail to display - Missing
express.json()middleware:/update-metadataendpoint readsreq.body.userIdbut no body parser is configured — alw...
Update: Deep Audit Results (discord-api-docs)
Ran a deeper scan across the docs. Here are the additional findings:
Invalid JSON Examples (21 blocks)
Multiple json code blocks fail strict JSON parsing. Most use // comments or ... ellipsis for documentation purposes — these should probably use the jsonc language tag instead.
| File | Blocks | Issue |
|---|---|---|
webhook-events.mdx |
7 | // user data comments |
voice-connections.mdx |
5 | Trailing ... |
Great! Thanks for the response 👍
75a8082 Update Support Links - Mel Rumsey
Added Game Dev specific support link: https://dis.gd/developer-support/game-development
Ok
في الاثنين، ٩ مارس ٢٠٢٦، ٢١:٢٤ LukeZ @.***> كتب:
The-LukeZ left a comment (discord/discord-api-docs#8177)
https://github.com/discord/discord-api-docs/pull/8177#issuecomment-4027012249Any updates lads? 👀
—
Reply to this email directly, view it on GitHub
https://github.com/discord/discord-api-docs/pull/8177#issuecomment-4027012249,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/B2DFN3WOPJZBA7X47QV4S534P4ZCJAVCNFSM6AAAAACWBWJM...
Okay thanks for letting me know
في الاثنين، ٩ مارس ٢٠٢٦، ٢١:٣٥ Mel R. @.***> كتب:
Merged #8205 https://github.com/discord/discord-api-docs/pull/8205 into
main.—
Reply to this email directly, view it on GitHub
https://github.com/discord/discord-api-docs/pull/8205#event-23410801219,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/B2DFN3SYMRY37HWEONCYBQT4P42JRAVCNFSM6AAAAACWMLGVG2VHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDW...
Revisiting, is this something that would be feasible? With other changes being made to reduce the necessity of sensitive permissions between pin messages and bypass slowmode, this would be a helpful change to reduce the necessity of manage channel, and have consistent permission requirements between two similar API endpoints.
Since #2751, I am pretty sure that Discord would have some questions if someone was working on this for the past 5 years with no change. This note is no longer applicable. Hopefully.
i don't get the security risk, if the user has permission to use the context command and the bot has permission to send messages in that chat whats the issue.
beside while it be annoying whats stopping someone from setting up slash command that takes a link to message (in the read only) as input, that can be used from chat where they do have permission to send messages. the end result would be the same.
Description
May be a minor thing and I may be overthinking it but the wording just feels strange and almost foreign:
It almost sounds like trying to says "Discord Bots & User Apps" but needing another word. However it feels really out of place especially since it's not used anywhere else from what I can see.
Also side note, with how many people seem to be making AI driven bots maybe using the word "companion" isn't the right tone to set either...although that's a completely personal ...
Description
I found many typos and grammatical errors in the German Privileged Intents application form.
Also, my Discord locale is English (UK) and it is shown in German - except the select menus, they are English. That is a bug to me.
Steps to Reproduce
- Have a German locale (be based in Germany)
- Open the form https://discord.com/developers/applications/{BOT_ID}/request-additional-intents
Expected Behavior
no typos and correct localization (or only english)
Curre...
Description
There appears to be an issue with invite links that have a role attached. When such an invite link is shared externally (for example through WhatsApp) and opened by someone who is already a member of the server, the role is not assigned on mobile clients.
Instead, the app only shows a preview of the role along with a “Go To Server” button. After tapping the button, the user is redirected to the server, but the linked role is never granted.
You said the role should be assigned in the mobile version of Discord, but is it assigned in the desktop version of Discord when you are already a member of the guild?
Yeah, I am already a member of server and this linked role is working properly on PC client but isn’t assigning roles on mobile client while it should.
Yeah, I am already a member of server and this linked role is working properly on PC client but isn’t assigning roles on mobile client.
This is strange, if the role is assigned on the PC version, then it should be assigned on the mobile version of Discord, unless this is a visual bug
Okay, I get it, I thought the role shouldn't be assigned if you're already a guild member.
I have attached the video as well It just doesn’t assign role. There is also one more thing which I have noticed. On PC it says “Accept” even if you’re already server member but on mobile it says “Go To Server” with role details but nothing happens.
Yeah, I am already a member of server and this linked role is working properly on PC client but isn’t assigning roles on mobile client.
This is strange, if the role is assigned on the PC version, then it should be assigned on the mobile ...
Okay, I get it, I thought the role shouldn't be assigned if you're already a guild member.
Yeah It should assign but it’s not doing anything.
Thank you for reporting this! The fix should be in soon, but let us know if you run into any more issues.
@anthonydiscord, I think this would be a cool feature for current Discord apps. This can be the first step for the apps that they no longer require bot scope since role assignments can be done via linked roles.
What I like about linked roles that it has a great UX for the management side that staffs can easily set it up.
Maybe italics, bold, code blocks, and other things would be nice too if supported.
Description
The bug is that if desktop mode is on or off it still doesn't shows the full site without zooming lut
Steps to Reproduce
F
Expected Behavior
F
Current Behavior
F
Screenshots/Videos
.
Client and System Information
.
Everything works for me.
@ZohanDev Works fine for me too, if you want to add a screenshot of what you're seeing and which phone OS and browser you're using that'd be helpful.
A fix for this should be rolling out to canary shortly, then to stable some time later this week
0596bde Add Discord Social SDK 1.8.14587 to changelog - markmandel
Also: use date labels for SDK entries (fixing things!)
bd560c9 Add Discord Social SDK 1.8.14587 to changelog (... - markmandel
186d2a1 Update Developer Portal link to new landing page - markmandel
The Developer Portal nav button now links to /developers/home instead of /developers/applications to reflect the new developer portal landing page.
Sorry, GDC was a lot. Having a look now!
| min_values?\* | integer | Minimum number of items that must be chosen (defaults to 1); min 0 (see note), max 25 |
| min_values?\* | integer | Minimum number of items that must be chosen (defaults to 1); min 0 (see note), max 25 |
Unless there is a reason to keep the / formatting?
| min_values?\* | integer | Minimum number of items that must be chosen (defaults to 1); min 0 (see note), max 25 |
just consistency on capitalisation.
honestly, i don't think "see note" is needed here at all. that's just description noise. the * already indicated that we have to look on notes. also for the others