#github-notifications
1 messages ยท Page 27 of 1
Looking forward to the release of threads under v9, well done.
dislike if relatable
this wording kinda makes me worried. when is the latest we can expect to see breaking changes? because i imagine not all libraries might want to support them until then, and bots will still need some time to update to the lib update after that.
after seeing that I had that thought too... library maintainers would probably rather have a basically stable API instead of one that could change and break at whim
So the Canary leak about a week ago wasn't just a bug. ๐

I think breaking changes are fairly unlikely at this point, the protocols are generally finished, and been tested for a few months now. If there was a breaking change, it's hard to say, just because there's nothing planned and it's hard to imagine what that would be so we'll have to play it by ear.
I think what's more likely is things like some new status codes (there will be at least 2 I think, for when threads are "full"), and there may be additional features, especially around mode...
either [...] and [...]?
not entirely sure where this info goes but we also removed the deprecated /channels/:id/messages/:id/suppress-embeds route in v9.
Will there be a way to test out threads before this officially ships? A lot of these changes seem fairly complex (especially with the new layer of channel nesting and complexities there) and at the moment it's not trivial to conceptualize how threads even work without being able to play with it in action.
Just to make sure this isn't a typo, We can get THREAD_MEMBERS_UPDATE by specifying both GUILDS and GUILD_MEMBERS?
Locking for a bit... will unlock when things cool off.
Nope, only one is required, but it has different data depending on which intents are used: https://github.com/discord/discord-api-docs/pull/2855/files#diff-c24665b017972d8f7c266214d30655ea5e105826ef212048f9460632dd61e3dfR835
Will there be a way to test out threads before this officially ships? A lot of these changes seem fairly complex (especially with the new layer of channel nesting and complexities there) and at the moment it's not trivial to conceptualize how threads even work (much less bug-hunt with them) without being able to play with it in action.
As far as I understood there will be, they're having some sort of allowlist for that. Hoping to get there :)
Any information on v8 deprecation? (if that's happening...)
I asked in ddevs and got told: "v6, v7, v8 will all be announced for deprecation + discontinuation at a time tbd."
Does this mean you cannot preform actions on them with REST API v8, or is it just that you don't get events for them. (also, 10, 11, and 12 instead of 10, 11 and 12 for oxford comma)
Is there any reason this isn't in the metadata too? (given other important information like archived is there too...)
Is there some plan for this to no longer be the default?
Asked in ddevs and got told "tbd, but "latest version" will likely become default when a deprecated version that is default is discontinued".
... an archiver for a channel that isn't archived?
The REST API will work fine, I didn't really think there were any backwards compatibility issues there, it's mostly for gateway events that the issues happen.
I figured these were things that were potentially valuable for other types of channels in the future, but the thread_metadata things are basically never going to be valuable outside of threads.
Yeah, in this case it would be the person that unarchived the thread then.
It's discussed elsewhere, but this field is always set, first at creation time, then any time the duration or archived field changes
Type 18 is sent in the guild_text channel that a thread was created in, therefore it will be sent in API v8 and below too
Type 21 is sent in the thread and since API v8 & below don't get thread dispatches, they don't get this either
Yeah, we seem pretty inconsistent on this, a lot of things that are optional in requests certainly aren't marked as such, but these are all optional
Multiple variations / multiple kinds, perhaps?
| PRIVATE_THREAD | 12 | a temporary sub-channel within a GUILD_TEXT channel that is only viewable by those invited and those with the MANAGE_THREADS permission |
Per conversation in discord
Users can **create** a thread if they have _both_ the `SEND_MESSAGES` permission and the appropriate threads permission (`USE_PUBLIC_THREADS` for public threads, `USE_PRIVATE_THREADS` for private threads) on the parent channel.
Users can **participate** in a thread if they have _either_ the `SEND_MESSAGES` permission or the appropriate threads permission (`USE_PUBLIC_THREADS` for public threads, `USE_PRIVATE_THREADS` for private threads) on the parent channel.
Description
I have a website where users log in via OAuth2, 2 users match on the website and we create a private voice room for them via the API. The room gets created fine, the endpoint returns 200 and it is visible for an admin user. The problem is that if the user we are creating the private room for have not joined the server prior to the channel creation then he will never be able to get into the room.
I'd like to know if this is expected behaviour. For my use-case it would...
Since thread_metadata is being introduced, is there a reason that these properties shouldn't be in the metadata collection too as they're thread specific?
Is it expected that threads will only ever be supported in Guilds? Not Groups or DMs?
Generally immutable? This implies that there are situations when actions can be taken without unarchiving.
The naming of these new channel types seems to break the naming conventions thus far.
To keep with naming consistency, perhaps these should be named
GUILD_NEWS_THREAD
GUILD_TEXT_PUBLIC_THREAD
GUILD_TEXT_PRIVATE_THREAD
or
GUILD_THREAD_NEWS
GUILD_THREAD_PUBLIC
GUILD_THREAD_PRIVATE
The API will helpfully automatically unarchive a thread when sending a message in that thread.
Will the same happen for the following?
- editing/deleting messages
- adding/removing reactions
Unlike with channels, the API will only sync updates to users about threads the current user can view. When receiving a [guild create](#DOCS_TOPICS_GATEWAY/guild-create) payload, the API will only include active threads the current user can view. Threads inside of private channels are completely private to the members of that private channel. As such, when _gaining_ access to a channel the API sends a [thread list sync](#DOCS_TOPICS_GATEWAY/thread-list-sync), which includes ...
3428024 Update docs/resources/Channel.md - ajpalkovic
You can't add/remove reactions or edit/delete messages to archived threads but they require unarchiving first to do so. In the client you can send a message and it automatically unarchives the thread. Looking at the request that gets sent the client doesn't need to unarchive the thread before sending the message.
Yeah, this is mentioned elsewhere, but the only things that can happen on an archived thread should be: Unarchiving / Delete thread, or Deleting a message within the thread
Correct, only in Guilds
It only automatically unarchives when sending a message. So, the quoted statement in the second comment is "wrong"
We haven't decided yet. Right now no limits are enforced. I think 99.9% of servers will never run into the limits in practice, the 0.1% may, and I'm sure they'll want some way to find and archive old threads, but I can't really answer what that should look like, I imagine each server will want something different.
Yeah, responded to this elsewhere, but the first two are things that maybe could be valuable to future channel types, so figured they should be at the top level. The others are only ever valuable to a thread, so I decided to keep them in a "sub object". member though definitely wouldn't go there, it's a per-user thing, so I don't think it belongs with per-channel settings, you know?
Doesn't v9 also need to be added to the Gateway versions table (https://github.com/discord/discord-api-docs/blob/threads/docs/topics/Gateway.md#gateway-versions)?
Seems we are missing documentation for this in the channel resource
This is repeated three times, maybe make a referenced object definition.
Also the types for threads and members seem to be inconsistent with the rest of the docs (and just incorrect?) e.g. the threads property on the guild object seems to be consistent.
Seem to be missing the documentation for this in the channel resource as well
This will be fixed in the next API deploy.
I believe a reason might be not having to keep track of state, for example if you schedule some sort of "archiving" in a bot and just toss the task into a task queue. Then, when the task gets run, it could just archive the thread instead of asking the cache what the thread is currently like.
Outgoing webhook based interactions (slash commands) do not have a gateway connection. REST only solutions don't either.
What's the reason for it to be idempotent instead of returning an error?
Other endpoints are idempotent, from my knowledge. If you pin an already pinned message there's no error, if you mute/deafen a member that's already muted/deafened there's no error, if you toggle NSFW on an already NSFW channel there's no error, etc.
I think there are too many differences from a regular channel to work with thread_ids the same way as a guild channel in more operations than just the nsfw bool. So this type of type tracking would need to be necessary anyway. For example, threads do not have a position either so they cannot be moved.
+1 to this, we try not to punish clients too much for not keeping their own state of the discord world.
There is not, does there need to be?
Oh yeah, those types are very wrong, whoops
Also channel_ids can't be inferred from the returned threads.
I expect the algorithm bots should use here is:
- Remove all threads that have a parent_id that is in the channel_ids set
- Add all threads from the threads array
Because a channel might not have any active threads in it, so we're signaling that to you here as well!
Oh, actually there is one other case, when someone becomes owner of a guild we re-sync everything, but that's hopefully not an issue for bots too
Hmmmmmmmm. So the reason these don't have the guild prefix was actually a fairly intentional thing, but for internal reasons, we store threads and guild_* channels very differently! But I can understand that's not a concern for bots. They are still synced differently though, hmm
I think right now my head is at: There's a good chance we'll add more types of text channels in the next say 5 years, so tying it to the channel type is a bad idea?
2a954fb address some PR comments and confusion - ajpalkovic
170b56c active threads aren't paginated - ajpalkovic
Alright, I'll make it idempotent, thanks
246db0f clarify that archiving/unarchiving is idempotent - ajpalkovic
If we want to change this we should at least link the vanity URL for the server. https://discord.gg/discord-developers
What do these changes do?
6cd86c2 add 'the' in dispatch/Error_Codes for consisten... - danthe1st
do you know how if you for example write js code and push it to a github repo? And then the repo has a js tag. Well this makes it detect markdown(md) as a language.
Not at the moment, depending on flags maybe in the future. But was just wondering in this case.
๐ Yeah, if there ends up being a good need for it, let me know, it's trivial to add I think
But yeah, right now flags are just notification settings, and there's not really anything else there, so I think 99% of bots aren't going to care at all about thread members
I'm not sure why there's need for these 3 endpoints to be seperate:
/channels/<channel_id>/threads/active
/channels/<channel_id>/threads/archived/public
/channels/<channel_id>/threads/archived/private.
It would be more consistent to merge these 3 under a single /channels/<channel_id>/threads endpoint and use query parameters such as state and visibility if needed to be filtered.
However this does add scenarios where someone might try to filter for threads which are active...
Description
It is possible to bypass the 8MB upload limit using the Edit message endpoint.
Steps to Reproduce
- Send a message with a 8MB file.
- Send a PATCH request to
/channels/{channel.id}/messages/{message.id}passing a 8MB file:
curl -X PATCH "https://discord.com/api/channels/{channel.id}/messages/{message.id}" -H "Authorization: Bot token" -H "Content-Type: multipart/form-data" --form "file=@"...
Still noodling on this, but you also wouldn't have access to things like the permission overwrites on the parent channel, so you couldn't calculate permissions right? If anything we might be able to change this on just the "get one channel" endpoint, but I'm skeptical that in most cases that would be sufficient?
I'm leaning towards yeeting thread_metadata and putting all those fields at the top level instead. Thoughts? Might be nice to be able to more easily tell that a field is thread-specific.
[discord/discord-api-docs] New comment on issue #2857: It is possible to bypass the 8MB upload limit
isnt this just uploading more files? how does this bypass the limit
[discord/discord-api-docs] New comment on issue #2857: It is possible to bypass the 8MB upload limit
"uploading multiple files" isn't really "bypassing the 8MB file limit" is it. you can do a semantically identical thing by just sending multiple messages.
the vaguely interesting note here is that uploading files via the "Edit Message" endpoint isn't documented. but it's clear that messages support multiple files because attachments is an array
[discord/discord-api-docs] New comment on issue #2857: It is possible to bypass the 8MB upload limit
but it's clear that messages support multiple files because
attachmentsis an array
You can upload multiple attachments in a single message on Android.
[discord/discord-api-docs] New comment on issue #2857: It is possible to bypass the 8MB upload limit
isnt this just uploading more files? how does this bypass the limit
It bypasses the 8MB limit per message (and the multiple files restriction). That shouldn't be possible according to this comment.
[discord/discord-api-docs] New comment on issue #2857: It is possible to bypass the 8MB upload limit
can you send an edit with multiple 8mb files? if so this is just the same as uploading a new file
I think I like the way it is currently, because some of the fields the thread-metadata are non-optional. Putting them on the top level means every parameter gets marked optional.
I think the right thing to do is to submit a feature request to return the parent channel in the "get one channel" endpoint too. That way you get both in one API call, but you also get all the fields that can be inherited, not this one special field.
Thanks for the PR. We generally consider libraries which have reached maturity. Please followup again once your library reaches that stage of life.
Thanks for your PR. We generally like to list libraries rather than bot implementations on top of them, and since your library implements/wraps discord.js I would consider it within that bucket.
4b03b9f clarified dispatch error 2058 (#2854) - CertifiedRice
the naming of the body value is incorrect, and will be corrected in the next api deploy.
2c9f178 Document GET Invite with_expiration query param... - ThaTiemsz
This endpoint isn't really consistent with the other endpoints for threads. It would make more sense to merge this with the private threads endpoint i.e. channels/channel_id/threads and have a private boolean field in the json payload. And of course a message_id field which would be required for public threads.
This also works as a future proof for potentially being able to create public threads without needing a message to be provided.
That may be a bug in your implementation, since our API does support configuring channel permission overwrites with any user id, regardless of presence in the guild.
[discord/discord-api-docs] New comment on issue #2857: It is possible to bypass the 8MB upload limit
this will be fixed in the next api deploy
Just, out of curiosity, how does this work exactly? Are we expecting more data when we call the same endpoint? Is it paginated, like /channels/:id/messages?
Can bots even interact with GDM?
This wording is confusing me... So if we set archived to false, we require the ability to send messages in a thread? Did this mean to say removes the ability to...?
This type I assume is an ISO8whatever timestamp, right?
The member endpoints, shouldn't these be PUT instead? It would make them more inline with reactions for example
there are some gdm management endpoints, as bots can create them and add users via oauth (was for gamebridge)
While maybe strange behavior, this isn't strictly a bug or unexpected behavior since there are no messages in that type of channel. I don't think this is something we will change.
This behavior is already supported in the API. Webhook messages + normal messages can have attachments edited or removed on their respective PATCH routes.
First and foremost, this is not an API bug and shouldn't be reported here. This repo is only for reporting issues with the third party Discord APIs.
Regardless, you probably are logged into two accounts on the same browser session. Try using different browsers.
The attachments key is not documented in PATCH and neither is the file adding behaviour. Shouldn't the documentation have been updated prior to closing the issue?
@msciotti the linked pull request does not close this issue as the @everyone role is not intended to be used for slash command permissions and there is no other way to disable commands per guild.
This is considered working as intended. The
everyonerole is not supported for slash command permissions at this time, since thedefault_permissionis meant to serve that purpose.
_Originally posted by @night in https://github.com/discord/discord-api-docs/issues/2798#issuecomment-8185...
The first one is correct, you require the send messages permission to unarchive the thread
this line seems to be a mix of icon and type
## Start Public Thread % POST /channels/{channel.id#DOCS_RESOURCES_CHANNEL/channel-object}/messages/{message.id#DOCS_RESOURCES_CHANNEL/message-object}/threads
Endpoint names are typically in title case
| owner_id? | snowflake | id of the creator of the group DM or thread |
## Join Thread % POST /channels/{channel.id#DOCS_RESOURCES_CHANNEL/channel-object}/thread-members/@me
Adds the current user to a thread. Returns a 204 empty response on success. Also requires the thread is not archived. Fires a [Thread Members Update](#DOCS_TOPICS_GATEWAY/thread-members-update) Gateway event.
## Add User to Thread % POST /channels/{channel.id#DOCS_RESOURCES_CHANNEL/channel-object}/thread-members/{user.id#DOCS_RESOURCES_USER/user-object}
Adds another ...
## List Public Archived Threads % GET /channels/{channel.id#DOCS_RESOURCES_CHANNEL/channel-object}/threads/archived/public
Its paginated using the before query param, since the data is in descending order
Right, but that's not documented, hence why I asked! :D Then it should be added
a848869 remove deprecated interaction callback types - night
Oh I just figured it was nice to have them line up?
didn't see any other places though
bf02c6e Update docs/resources/Channel.md - ajpalkovic
3f7b349 Update docs/resources/Channel.md - ajpalkovic
a2d3871 Update docs/resources/Channel.md - ajpalkovic
5afbad7 document webhook message attachment patch - night
1b12e10 Update docs/resources/Channel.md - ajpalkovic
df3e58d Update docs/resources/Channel.md - ajpalkovic
771cbbc Update docs/resources/Channel.md - ajpalkovic
0b2b84d document channel message attachments patch - night
fe5d9b4 Update docs/resources/Channel.md - ajpalkovic
tbh not even sure why permissions has the hex values, for the flag tables its just the shift:
- https://discord.com/developers/docs/resources/channel#message-object-message-flags
- https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags
- https://discord.com/developers/docs/resources/user#user-object-user-flags
- https://discord.com/developers/docs/topics/oauth2#application-application-flags
Oh I'm sorry, I didn't see the context of this being the active threads endpoint. I assume leaving the has_more in the response here was an accident, since their is no pagination (based on the removal of it in a prior commit)
Oh I'm sorry, I didn't see the context of this being the active threads endpoint. I assume leaving the has_more in the response here was an accident, since their is no pagination (based on the removal of it in a prior commit)
23f15f5 Update docs/resources/Channel.md - ajpalkovic
I've been polling various folks on this, so far it's actually 100% against having a merged endpoint surprisingly!
I understand the concern, but there's other complexities too, like making rate limits more complicated for example.
tbh not even sure why permissions has the hex values, for the flag tables its just the shift:
(Also intents.) I meant to bring this up at some point. Permissions hex values came first with the original docs. I think that documenting flags with their bit shifts was a trend started by Mason (#754) and it stuck. I wouldn't mind changing permissions to bit shifts, but I think there is familiarity with seeing them as their hex values (for example, people tend to recognize the admin permission...
afaik people recognize admin as 8 more than 0x8
Looks like guild-members is so, yeah :(
Oh yeah, that's fair it doesn't tell you want to do lol, whoops
But yeah, it's in descending order so you'd take the lowest id or archive_timestamp and pass that as before
I don't really mind the endpoints being separate, it's not like it matters much, but I'm confused by this "100% against" poll. One can retrieve all channels within a guild via a single REST request and then filter it client-side, but here we get 3 separate ones just for the sake of filtering?
Why would these have different rate-limits? Doesn't the internal logic differ only by the queried type/archive state?
There are absolutely going to be differences. At a minimum we need pagination here but guild channels doesn't
Cannot delete a voice channel, getting an error 404 "unknown channel" response.
CHANNEL ID: 819963486896914452
SERVER ID: 635895672025120799
Ah, this is information we expose in JDA but I'm realizing it is because it is a hardcoded limited augmented by BoostTiers.
Part of this expectation was the thought that maximums might vary between Guilds which would be an important metric for Moderation bots to know in regards to handling auto-archives if needed or whatever else they might do to avoid hitting limits for various features.
Yeah, @Rapptz makes a good point about the additional context. Avoiding the additional roundtrip is the only goal, so bundling that additional context as the parent channel in the same response makes sense to me.
Do we need to open a feature request on this repo or did you mean an internal feature request?
Maybe this wording would be better then?
- `THREAD_STARTER_MESSAGE` is a new message sent as the first message in threads that are started from an existing message in the parent channel. It _only_ contains a [message reference](#DOCS_RESOURCES_CHANNEL/message-reference-object-message-reference-structure) field that points to the message from which the thread was started.
If I understand this correctly, right now THREAD_CREATED is a message that appears in the parent channel that functions as a reply message to the original message and announces that a PUBLIC_THREAD has been created, however, it seems possible that there may be other non-message-originating thread types in the future that would need to be similarly announced into the parent channel.
These threads would not have an...
Why are the sorting methodologies of this endpoint and the other 2 archived endpoints different?
So the idea here is that if you want the functionality of /channels/<channel_id>/users/@me/threads/archived/public you should call /channels/<channel_id>/threads/archived/public and filter based on whether you have a thread.member for the thread?
be56227 Update docs/topics/Threads.md - ajpalkovic
Yeah, my assumption was that the number of active threads is much much smaller than the number of archived threads so we don't need any pagination there, and that makes it easy to just do the filtering in your code? (That's what our clients do at least, they load all active threads and then filter client side)
How about:
`THREAD_CREATED` is a new message sent to the parent `GUILD_TEXT` channel, used to inform users that a thread has been created. It is currently only sent in one case: when a `PUBLIC_THREAD` is created from an older message.
could the exact requirements for "older message" be documented?
It's because of how the backend has to paginate them, there's not an efficient way to paginate joined threads by archive timestamp unfortunately.
No
But I'd be open to doing that when we launch, it's change a few times and I don't want folks depending on it
It's currently > 5 messages old or message > 10 minutes old
i don't think the permission names should be changed; it's inconsistent here, and all permissions are for guilds anyway
This would be really useful for bots that bridge other communication services to Discord. For example, the Matrix appservice for Discord uses webhooks to simulate users sending messages from Matrix. It would be great if a Matrix user could use the reply feature in Matrix and it would be properly represented in Discord (see https://github.com/Half-Shot/matrix-appservice-discord/issues/693).
While maybe strange behavior, this isn't strictly a bug or unexpected behavior since there are no messages in that type of channel. I don't think this is something we will change.
This is counter intuitive tho. All the other endpoints that create/edit/delete messages check for it to be a text channel and this endpoint not doing so is kind of weird.
Wait, so this endpoint can be paginated by ID or archive timestamp? ๐
That's sweet if that's the case
Could you confirm this works as expected? Adding an userID to the permission_overwrites which has never been in the guild returns a 200 request but upon that userID actually joins the guild he does not have access to the channel.
(Also if i do the exact same request while the user is in the guild then everything works fine)
I'm in multiple naturalist & birder Discord communities, some with sizeable memberships (> 1k members) who would benefit from greatly from OG audio tag support. For example, xeno-canto.org (a huge repository of birdsong recordings) sets these 3 audio-related OG tags:
<meta property='og:audio' content='https://www.xeno-canto.org/489750/download' />
<meta property='music:duration' content='10' />
<meta property='og:audio:type' content='audio/mp3' />
example is from https:/...
No, each endpoint can only be paginated by one of them
IF we were to make a change here, what would that look like:
I think we'd have /channels/channel_id/threads and /channels/channel_id/users/@me/threads
The former for all threads, the latter for joined threads
Both would take a visibility arg, public/private
The reason for separate routes is because the first route is sorted by archive timestamp and the second route is sorted by id, so I think keeping those separate makes more sense.
The first oddity we get to is the "all threads" r...
I think the permissions varying are fine, that's the case on e.g. creating messages.
But let's say you went with the single route for threads and had status as a field:
If it was set to archived, you'd order them by archive_timestamp with pagination.
If it was set to active, you'd order by id without pagination.
And for both active and archived you could just fallback onto ordering by id with pagination?
I think this in itself is fine, because the same behavior has to be ...
Description
When responding to a slash command with ephemeral embeds, the first one you send is never actually ephemeral. Subsequent ones are:

Steps to Reproduce
- Execute a slash command, defer the response
- Send 2 message creates to the webhook with embeds, both ephemeral
curl https://discord.com/api/v8/webhooks/{bot.id}/{interaction_token} -H 'Content-Type: application/json' -d '{"flags":64,"embeds":[{"descript...
This is because your original response wasn't ephemeral, the first post to the webhook will then act as an update to that original reply. This update cannot change the message to ephemeral.
This is because your original response wasn't ephemeral, the first post to the webhook will then act as an update to that original reply. This update cannot change the message to ephemeral.
Both are sent with the ephemeral flag
When replying with ephemeral = true and then sending the webhook messages:

When replying with ephemeral = false and then sending the webhook messages:

The only difference is the flags I send to /callback, the webhook messages are always set to ephemeral in ...
I've experienced this same issue. I can send 2 ephemeral messages, but the first response isn't sent as an ephemeral message.
When replying with ephemeral = true and then sending the webhook messages:
When replying with ephemeral = false and then sending the webhook messages:
The only difference is the flags I send to
/callback, the webhook messages are always set ...
The problem is that both messages should be ephemeral
They are both ephemeral in my example:

They are both ephemeral in my example:
<img width="596" alt="Screenshot at Apr 30 13-03-54" src="https://user-images.githubusercontent.com/22227890/116728944-8d9cc100-a9b4-11eb-82c0-a4703ee9b829.png">
Clearly there's a problem.
The problem is that both messages should be ephemeral
They are both ephemeral in my example:
snip
This is the intended behaviour, yes. However, me and others are experiencing a bug where the first message is not ephemeral, when it should be
Do you have any code to reproduce in which the initial response should be ephemeral but is not? The curl command in the description just seems to be for the followup, which seems to work properly.
If you are using a deferred response (type 5) then the initial deferred response must be ephemeral; public messages (including public loading messages) cannot be edited to ephemeral, and vice-versa. This also applies if you are using the deprecated behavior of sending a deferred response and ...
Can you create a minimum viable repro of the issue using curl commands for us and ddevs to test with?
Do you have any code to reproduce in which the initial response should be ephemeral but is not? The curl command in the description just seems to be for the followup, which seems to work properly.
If you are using a deferred response (type 5) then the initial deferred response must be ephemeral; public messages (including public loading messages) cannot be edited to ephemeral, and vice-versa. This also applies if you are using the deprecated behavior of sending a deferred respons...
Unfortunately, that was denied in #2735
You have a full 5 seconds to make a decision about whether it needs to be ephemeral or not..
However, if that isn't good enough:
You could set the initial response as deferred and ephemeral.
Then, if you wanted the follow up content to remain ephemeral, you just send the follow up content.
If you want to break out of it being ephemeral for everyone to see then send the initial follow up content and send an additional message to the webhook with ephemeral: false
6dc1b2a Invite expires_at is nullable (#2861) - advaith1
this documentation looks slightly incorrect. form data is just a different way to represent the same data, and we support all the same keys under both content types. the issue with form data is nested structures are not supported, so json must be used. this is why the documentation states to send your body in a payload_json wrapped key if you need to use embeds.
What you want is basically to first send a non-ephemeral "Thinking..." message, that is visible for everyone, and then replacing that with a ephemeral response, which ultimately is just a terrible UX for everyone other than the one issuing the command
these spaces at the ends are intentional, as 2 spaces at the end of a line is a markdown newline
anyway this section was replaced in the threads PR so editing it will cause merge conflicts
this seems to just be copied from the existing documentation for sending https://discord.com/developers/docs/resources/channel#create-message-parameters-for-contenttype-multipartformdata
Description
I go to add a new Redirect URI to my list on my application 'http://127.0.0.1:5500/callback.html' and the site gives the following error: "You provided an invalid redirect URI." Adding these types of URIs have worked in the past and I have verified that the URI is correct.
Steps to Reproduce
- Click 'Add Another'
- Type 'http://127.0.0.1:5500/rust5x/getkit.html' into field.
- Click 'Save Changes'
- Error
Expected Behavior
Accepting the new U...
Unfortunately, that was denied in #2735

try using localhost instead of 127.0.0.1
embed didn't seem to be documented in the table bellow., which is why I removed it.
Didn't mean to do this on purpose, was made by my linter. Will fix
Reworded to better match the functionality
[discord/discord-api-docs] New comment on issue #2537: Emojis in option names cause validation error
this will be fixed in the next client deploy
Both localhost and 127.0.0.1 work for me. it's possible you just have too many redirect uris. There is a limit of 10.
Gotcha. If the limits become dynamic, we can make sure they're synced on the guild. I suspect they will be fairly static though, and we'll just publish a few constants somewhere.
I would raise this as you normally would, so I think that's just opening a GH issue here, and proposing that we add a new field to the "get one channel" endpoint, parent, that would be the serialized parent channel, if any. It wouldn't replace parent_id either, so we don't break backwards compatibility, it'd be purely additive.
I suspect we won't have different rate limits, I bet all 4 routes end up getting the same rate limit most likely, it's just simpler that way.
Regarding visibility: that's the same thing though as just having two routes, right? idk
Hey all, I'm going to merge and deploy this, if you have other concerns though, feel free to open Issues or PRs as you would normally.
If they'd have the same rate-limits I'd be all for merging the three endpoints into a single one, but you've said people prefer separate ones.
Regarding visibility: yes, but this also would let us filter the active threads via the field as right now it returns both public and private ones.
0afdd81 document uploading new attachments on message P... - davfsa
In the original version, both ADD_REACTIONS, and VIEW_AUDIT_LOG had the same offset of 6.
@ajpalkovic hope it's okay to comment here, just found an inconsistency.
Start Public Thread
Start a private thread

Probably Start Private Thread instead?
the value is still the same though, looks like the ones below are also just continued based on this one
The value is correct with 1<<7 == 0x80 and 1<<6 == 0x40
Description
As the title says, slash commands that has a type 3 required ApplicationCommandOption and has nothing inputted in the prompt is accepted. However, it shows an ephemeral response stating that the interaction failed.
I tried doing this on a browser app and this time, it showed me an error saying that I need to fill up the option. I have a feeling this is a bug since both platforms don't have the same result.
Steps to Reproduce
- Have a slash command that has an ...
This PR documents the fact that when passing options to an ApplicationCommand, it is needed to put required options before optional ones.
78f8e29 Change duplicate permission offset (#2863) - LenderSchlender
Description
When experimenting with interactions, I found I was unable to send ephemeral messages as a first followup message to a deferred response, but it works properly as a second message to a deferred response (image 1).
I'm able to send an ephemeral message as the initial response to an interaction (image 2), but doing this doesn't give me a message payload back, which is an issue for my usecase.
I've only tested this with interactions over the gateway, but I don't imag...
Oh, interesting. Despite data being optional, you can set a deferred response to ephemeral.
Thank you for the note.
- Clean up double spaces that were probably a mistake
- Fixed names of methods to be more consistent with the rest of the docs
I also renamed Add User to Thread to Add Thread User and Remove User from Thread to Remove Thread User as I also felt like it was more consistent e.g. Add Guild Member.
I also renamed Add User to Thread to Add Thread User and Remove User from Thread to Remove Thread User
imo this is better as it is currently; a "thread user" isn't really a thing
imo this is better as it is currently; a "thread user" isn't really a thing
I'd say a "thread user" is technically a concept now. This also aligns with the fact other methods don't use prepositions in their names (except Delete All Reactions for Emoji, but that probably went unnoticed).
Also, I just now noticed the docs has references to Thread Members. That might make more sense.
For me, I don't think users should know that required options have to first. I mean, in the client, the optional slash command options are showed last. That said, I don't think this will really be needed.
So far, I haven't experienced anything that would need required options to be in the lead.
> Required options must be before optional options
not really necessary to say "otherwise it will return an error"
For me, I don't think users should know that required options have to first. I mean, in the client, the optional slash command options are showed last. That said, I don't think this will really be needed.
So far, I haven't experienced anything that would need required options to be in the lead.
You are wrong ; if you pass required options before an optional option it will throw an error. I think that it is important to mention it in the documentation
For me, I don't think users should know that required options have to first. I mean, in the client, the optional slash command options are showed last. That said, I don't think this will really be needed.
So far, I haven't experienced anything that would need required options to be in the lead.You are wrong ; if you pass required options before an optional option it will throw an error. I think that it is important to mention it in the documentation
Oh, I didn't know that....
As seen in line 22, auto_archive_duration isn't in an inline code, unlike the other thread fields.
Description
When using a self-bot, message.content and message.embeds are both empty. This does not occur on a real bot. I can still view information such as message.author.id, etc.
Steps to Reproduce
- Run a simple bot with a user token.
- Add the
on_messageevent. - Add a command or some sort of response to a message, or just
print(message.content)
Expected Behavior
It responds/prints message.content
Current Behavior
`message.con...
discord had only blocked the usersagent. dm me on discord Daedalus#0001 for support.
- Moves application object and current application endpoint to a new Application page
- Documents Application Asset Object
- Documents
/applications/:id/rpc - Documents
/oauth2/applications/:id/assets - Fixes
cover_imagedescription - Documents application cover cdn endpoint
- Updated all the links to the application object; a lot of them were already broken anyway
Notes
- Kept the application
bot_properties listed as non-optional and documented the.../rpcendpoint as re...
JDA already has a working slash commands implementation: https://github.com/DV8FromTheWorld/JDA/pull/1501
This is just a temp solution until its implemented. Can be removed when JDA finishes the slash commands.
Is this endpoint misspelled? i.e, it should be thread-members, and not threads-members?
I still think this would be a neat thing to add. ๐
How will this field work around slash command follow up messages; will the pseudo-webhooks for slash commands which were executed in a thread be tied to the thread specifically or would follow up messages go to the parent channel unless this is provided and will slash commands executed in a channel which has threads be able/allowed to post follow up messages in threads within the channel it was executed in?
@FasterSpeeding interactions are automatically scoped to the thread they are created from. this is only for normal channel webhooks.
@FasterSpeeding interactions are automatically scoped to the thread they are created from. this is only for normal channel webhooks.
would it be worth it documenting this difference in the docs for Create Followup Message then since it's currently ju...
cd0cae8 document executing webhooks for threads. (#2875) - devsnek
๐ I'm going to make one tweak in a sec too
86d4224 Fix how auto_archive_duration was written in li... - J-Human
There is no standardised way to pass query string parameters. While to some people the value might be obvious, I think it's good to document what is considered valid as a boolean parameter. That way there's no ambiguity. Some libraries such as yarl don't support booleans and their encoding must be explicitly done by the API consumer. This confusion is also present in some StackOverflow questions ([1](https://stackoverflow....
Not a big fan of the changes to add/remove from thread. Mind undo'ing them?
@ajpalkovic Would using Member over User be preferable - Add Member To Thread since they're in guild contexts or would a complete undo be good enough?
Well they aren't yet a member of the thread. You're going to add a user to a thread, and then they become a member. But you'll remove an existing member from a thread, you know?
But it looks like for guild members, we do "add guild member" / "remove guild member", so I will relent and say add thread member / remove thread member is fine
21c9ffe Fix thread documentation in Channel.md (#2867) - Apacheli
663dc59 Clarify a few pieces of the threads documentation. - ajpalkovic
This will be supported in the next api deploy.
Description
Add for example in the Dashboard the ability to customize the interaction failed message. This can allow developers to provide more information or provide links where the user can get help.
Why This is Needed
Currently the "This Interaction failed" message isn't that helpful and can confuse inexperienced members. It would be helpful to answer the question why this is so.
Also for planed maintenance or downtimes this can be helpful to notify the user.
**Alternatives Co...
Description
When you are typing a command and tap on a MENTIONABLE (type 9) option, the app crashes
Steps to Reproduce
Type a command with a MENTIONABLE option
Tap the name of the option
Expected Behavior
It shows users and roles, and you can select one and use the command normally
Current Behavior
The app crashes
Screenshots/Videos
https://user-images.githubusercontent.com/11778454/117086631-fad88b00-ad01-11eb-8dde-3652fe409ce2.mp4
 option shows users, channels, and emojis instead of users, and roles
Steps to Reproduce
Type a command with a MENTIONABLE option
Type a user, role, channel, or emoji
Expected Behavior
It shows users and roles, and you can select one and use the command normally
Current Behavior
It shows users, channels, and emojis
Screenshots/Videos
https://cd...
I seem to be able to repro this also, same expected and actual behavior. My Discord app crashes and gives me a prompt to restart it.
Screenshots/Videos

Client and System information
System: iPadOS 14.4.2, iPad 6th generation
...
Description
Even with a correct request, the /oauth2/@me route 401s on canary.discord.com or when routed to the canary API with the header.
Reporting now so it will hopefully be fixed before it reaches prod
Steps to Reproduce
- make a working request to
/oauth2/@meusing a bearer token, onhttps://discord.com/api/v9 - switch to
https://canary.discord.com/api/v9
Expected Behavior
It still works properly, returning the same response
Current Behavior
...
Image of the application AniFarm is not showing

I have created a application approximately 2 months ago. At that time I have uploaded a image for the application and it was there and was showing when someone tried to add the bot.
But suddenly/recently from 2 of this month it just disappeared. I tried reuploading it (2 times today and one time yesturday) still i...
Can reproduce. I've also tried the https://ptb.discord.com/api/v9 route, which worked.
This won't be of much importance but it would be good if the version in the sample query-string is v9, since it's already released. But, threads haven't been shipped yet so it's no use yet. Nonetheless, it's still a good practice to be up-to-date.
Another thing about this commit is adding the info of the intent calculators, since the docs doesn't have any content telling users about them. Lastly, this edits the statement about intents being required.
Description
Hello ๐
I am hoping to request the addition of a new request to be sent whenever a guild/server adds the slash application(non-bot).
Why This is Needed
I was looking to somehow determine when the application is invited, so I could register all the guild-specific commands for them because at first these would not exist.
Alternatives Considered
/registerglobal command to enable guild commands. However, i feel thats a bit worse UX ...
They were talking about when it only has the applicaiton.commands scope authorized, you don't know it was added to a guild until a command is used with it. Though I'm not sure what the point of registering guild specific commands when it is added. It sounds like you can just use global commands.
Description
When you want to whitelist someone to your app in order to test the rpc scopes on that user, you can add the user on the developer portal, but the user is unable to actually add him/her into the app whitelist without api hacks.
Steps to Reproduce
- Add someone to your app whitelist
- Have the user click the accept invite button, and watch them get sent into the web client directly without accepting the invite.
Expected Behavior
The user should be ...
If you are using **Gateway v8** or above, Intents are mandatory and must be specified when identifying.
Adjust wording
This will be fixed in the next canary API deploy.
Thanks for catching this on canary before we promoted to stable.
But also, why are you using the canary API lol...
Description
Add the ability for the user who used a slash command to edit the interaction after the bot responds, like editing a normal message. The bot would see it as a normal command interaction, but the response would just edit the previous interaction message.
Why This is Needed
Many bots allow editing messages to edit their response for message-based commands. However, to provide an optimal UX for this (editing the bot's original response), the bot has to cache the connecte...
Many bots allow editing messages to edit their response for message-based commands.
In my experience this is not that common. I'm not sure I think it's good UX either. With the bots that do this you can get a lot of extraneous responses from 1 message that's been continuously edited. I'm not sure how it'll work here when you continuously edit in valid command invocations. If the original message is edited then how does it work when one command goes from public to ephemeral? Would that be...
Description
API provides incorrect ratelimit headers on reaction add endpoint.
Steps to Reproduce
- Add a reaction, and read the ratelimit headers that are returned.
- Add a second reaction after the first reaction, while making sure to follow the ratelimit as per the returned headers.
- Watch as you get a 429 error.
Expected Behavior
Get correct ratelimit information from the API. Be able to know when not to send a request, as to not get ratelimited.
**Curr...
It looks to me like the request is returning the rate sublimit for reactions per channel (?) per IP.
Could rate sublimits please be documented?
https://github.com/discord/discord-api-docs/issues/1909#issuecomment-815395521 ... Please???
Description
Every time I attempt to delete a guild role, I receive a 500 error.
Steps to Reproduce
Send a delete request to /guilds/GUILDID/roles/ROLEID
Expected Behavior
Should return a 204 response.
Current Behavior
Returns a 500 error.
Screenshots/Videos
I'm using the "Discord.js" library:

**Client and System Inf...
this will be fixed in the next api deploy.
An update:
Despite receiving a 500 error every time I attempted to delete the role, when checking audit logs, the role was deleted (3 times) and I can confirm the role is gone.

Felix v3 is the bot making the API request, and Chimken is myself deleting the role through server settings
The role being deleted:
, but that shouldn't be that common.
I think implementing...
Description
I'm developing a simple app that uses RPC. I use AUTHORIZE, the user authorizes, and it returns a code. According to the documentation, I need to call /api/oauth2/token which requires a client_secret. For obvious reasons, I don't want to put the client_secret in the app's code.
Why This is Needed
To have simple apps not require backends for using RPC
Alternatives Considered
Coding a backend that redirects to the application
@night Is this fix deployed? Asking because reactions in Discord.net are still completely broken, but not sure what's at fault.
same
Did you try doing response_type=token instead of response_type=code? If I remember correctly, that would issue a oauth2 token to the user without the need for a backend that sends a request to the /oauth2/token endpoint. (Though I am not sure if that is doable with RPC.)
@night Is this fix deployed? Asking because reactions in Discord.net are still completely broken, but not sure what's at fault.
Same for me (JDA library). Also my bot hits global rate limit after some time because of this.
No luck, my pagination is crying (Discord.Net). Half the bot is breaking. Fix soon pls!
The Retry flag for rate-limits in the DiscordSocketClient config is also not working.
Description
Using Emojis in bot commands might be a stylistic choice of some developers. When I wrote a bot that took an animal as a choice argument, I wanted to decorate all choices with an emoji representing the animal. However, when I select any option with an emoji, the command is highlighted in red and cannot be sent. This is probably because Discord converts the code point into a Discord emoji (like "๐ฏ" becomes ":tiger:"). When I replaced the emoji in my choices with Discor...
When trying to see the number of members that will be kicked from a prune in large guilds it will 502.

Can you share your application id?
I am not able to reproduce this behavior locally. We did fix this in a previous update, so be sure to update your client.
@night Is this fix deployed? Asking because reactions in Discord.net are still completely broken, but not sure what's at fault.
same (Discord.net)
This behavior is known and is unlikely to be fixed. For large guilds we do not have the capability to compute the count quickly enough.
My Build is
Stable 83364 (9af39da)
Host 1.0.9001
Windows 10 64-Bit (10.0.18363)
Is this not the latest one? Sorry for not providing it in the issue, I couldn't fine it until now. I have restarted Discord multiple times by now and I can reproduce the error every time.
To prevent application spoofing over websocket connections, we require the full oauth2 grant flow for RPC connections over websocket. If you are using our game sdk, it is possible to auth without a backend.


build 9af39da is from 8 days ago
9af39da is still the latest stable version, on https://discord.com/app (stable hasn't been updated in a while)
then it is fixed on ptb + canary and you'll have to wait for us to promote the update to stable
The deploy is currently delayed due to some complications with google.
I have downloaded Discord Canary and can confirm that this bug has been fixed.
Thank you Minn; yup that's the update. We've been trying to deploy all morning, but are getting stalled. I'll report back here when it's complete!
@night Then why not return an error that says "We cannot compute the prune amount for large guilds."? A 502 Bad Gateway Error does not imply that at all.
This change has now been deployed.
@night
Here's My application id 816544600118132747
Status: Today I re uploaded the old image and now it seems like it is working again but this part is kinda glitched out
I tried reloading the page several times still this part wont show up



audit log is correct in the fact that the role does get deleted but client still says it failed
Description
All (global) slash commands shown in a list in the applications developer dashboard shown with configuration (as e.g. arguments)
Why This is Needed
For easier management for developers and easier way to edit them
Alternatives Considered
none (since you can pull them from the api just not as easy as if it was in the developer dashboard)
Additional Details
[discord/discord-api-docs] Pull request opened: #2893 Add a description for the \`MENTIONABLE\` type
clarified that it accepts users and all roles (not just mentionable roles)
did not mention that it doesn't work on mobile yet (#2878) as that'll hopefully be fixed soon, but that could be added if it's wanted
Description
This only seems to be happening in our server. On the last few messages, one of two reactions that are present on the messages can be incremented/decremented, but the other of the two cannot be interacted with as the API rejects your request with a 403. The faulty reaction is likely to be the right most one, and is likely to not have a reaction count higher than 1. If not, try the other one.
Steps to Reproduce
- Join or be present in the Rythm support server.
2....
Patching with an empty features array will let you create and set a rules channel without the server having community enabled.


Update: the faulty reactions have vanished
This one still has a broken reaction though => #679559756247335012 message

624768e Document Stage Instances. - tpcstld
Now presenting the sequel to Stage channels documentation, Stage instances!
Will sporadically read and address comments until the workweek begins on Monday. Then will be more active ๐.
Summary
Status: APIs are already available.
While developing, you may notice some more fields than what are documented. This is because we're still working on this stuff right now. We'll be incrementally documenting more and more fields as they become finalized and production ready. **Please ign...
For some extra color, this should be on average 10-15 minutes. The exact time is an implementation detail and will not be documented.
The goal for us here is to not have lingering stage instances with basically no one in them. We found that for large Stages people just go AFK. In the future, we plan that ending a stage instance will kick everyone out of the stage.
DELETE is fully capitalized here
topic here is for the stage instance, or the stage itself?
and the actual http method says PATCH
Ah. I would probably say Stage instance.
Regardless, it will be what controls the topic text here now (and in other places).

Is editing the stage channel's topic discouraged -- should we use this endpoint instead?
How can one know if there is an associated stage instance? There doesn't seem to be a documented endpoint or attribute to hint at this.
yes, changing the channel topic will stop working soon as the pr desc says
@night I'm also able to reproduce this issue. Only very few users get this error.
We can't delete voice channel and change name, limit and change category. We have permission but can't do anything. What should we do?
Server link:
https://discord.gg/uf3v7Jxtn6
Voice channel ID:
838449399658840095
Reach out to support at https://dis.gd/contact
This is a good callout. The answer right now for our clients is that we use the Gateway.
However, thinking about it more I'm not sure that bots want to keep state forever to handle this type of stuff. I'll see if we can expose a GET /stage-instances/<channel_id> endpoint next week.
Nothing helpful, just wanted to show support.
can u show me the bug. And well the slot error or can u allow me to look at the file block.
will u give me permisson to look at the file with ur licence? I want only u to be responsible for it. But i'll see what wrong.
Seems like this wasn't documented. From my testing this is available all the time. Correct me if I am wrong.
I kinda dont wanna waiver my rights so discord can kick me aroound
can u show me the bug. And well the slot error or can u allow me to look at the file block.
They already showed the bug, it was clear enough to be seen.
will u give me permisson to look at the file with ur licence? I want only u to be responsible for it. But i'll see what wrong.
This is completely unrelated, a license won't be needed in order to see how to fix the bug. And it was clearly said what the bug was.
umm looks like a webhook error
modify the web_hookers permission. Then try and update it then see if that works upon updating.
Try and get the Return of the webhook object id. Well check all the webhooks for errors. Thats probably what it is now that i'm veiwing it. Recode it and test it
Im following the rules but u dont want us touching it. Your asking for advice.
All of your web hooks need revisoning and reentry with IDS and strings along with json and a few other thing but it seems to be doing okay. and did u enter the tokens properly
The regex for the name of a slash command (ApplicationCommand.name) was invalidated after a recent change (circa 2021-05-08) that stopped implicit lower-casing of command names. The API will only accept lowercased names. The regexp ^[a-z0-9-]{1,32}$ describes this.
Specifically:
^[a-z0-9-]{1,32}$describes lowercase (Latin characters only) vs. the previous^[\w-]{1,32}$- Discussed in the Discord Developers server - around message ID `https://discord.com/channels/61342564868...
This is actually incorrect since the name supports more than just a-z. Better would be \p{Ll}\p{N} for lowercase letters and numbers. Or maybe just doing this:
| name | string | 1-32 character lowercase name matching `^[\w-]{1,32}$` |
That makes sense - hence my comment w.r.t. non-Latin characters. My concern with saying lowercase but not providing the regexp for it is that users tend to rely on the regexp, and so making it "copy paste" is likely a slightly better dev. experience.
Since \w is typically equivalent to [A-Za-z0-9_] in many regexp engines, ^[\p{Ll}\p{N}_-]{1,32}$ is likely the right replacement here.
Thoughts?
Ur webhook is not completed
On Sun., May 9, 2021, 6:27 a.m. Justin, @.***> wrote:
will u give me permisson to look at the file with ur licence? I want only
u to be responsible for it. But i'll see what wrong.This is completely unrelated, a license won't be needed in order to see
how to fix the bug. And it was clearly said what the bug was.โ
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://github.com/discord/di...
U asked for advice not for free work. Be happy about that.
On Sun., May 9, 2021, 8:48 a.m. Maximus Arillious, @.***>
wrote:
Ur webhook is not completed
On Sun., May 9, 2021, 6:27 a.m. Justin, @.***> wrote:
will u give me permisson to look at the file with ur licence? I want only
u to be responsible for it. But i'll see what wrong.This is completely unrelated, a license won't be needed in order to see
how to fix the bug. And it was clearly said what the bu...
Try and get the Return of the webhook object id. Well check all the webhooks for errors. Thats probably what it is now that i'm veiwing it. Recode it and test it
Markusnarillious thanks for your concern but I don't understand what webhook thing you are talking about can you elaborate what webhook you are talking about.
It was just a manual upload of image from the developers portal and for some reason https://user-images.githubusercontent.com/69100224/117160739-0057d300-addf-11eb-9276-...
Its not showing a portion of of to be displayed . ifvthe person can run a
renderind mode of cpu and script recoding it and send it to me i can review
Nd properly examine the file but will not touch its coding. I can only
provide advice based what i've examined. And if the person is also lying it
be more of a waste of time.
On Sun., May 9, 2021, 9:11 a.m. Bartick Maiti, @.***>
wrote:
Try and get the Return of the webhook object id. Well check all the
webhooks for errors. Thats prob...
If its not the webhook. Look at how ur coding input is. Did u place the
proper keys and place,is it the right frame for the request.
On Sun., May 9, 2021, 9:17 a.m. Maximus Arillious, @.***>
wrote:
Its not showing a portion of of to be displayed . ifvthe person can run a
renderind mode of cpu and script recoding it and send it to me i can review
Nd properly examine the file but will not touch its coding. I can only
provide advice based what i've examined. And if the person is ...
If its not the webhook. Look at how ur coding input is. Did u place the proper keys and place,is it the right frame for the request. On Sun., May 9, 2021, 9:17 a.m. Maximus Arillious, @.***> wrote:
Well I looked though it again. I guess you mean my application page is having problem because of how I have coded?
I am using discord.py and also I am not using anything that can change the image of the the application of from the bots code.
So its pretty hard for my how can a manual...
Idk anymore work requires payment and time. I'm just some random trolling
around high as hell on illicit substances laughing away at the wall. Your
educated right. Well why dont u fix it. Shits not free.
On Sun., May 9, 2021, 9:33 a.m. Bartick Maiti, @.***>
wrote:
If its not the webhook. Look at how ur coding input is. Did u place the
proper keys and place,is it the right frame for the request. On Sun., May
9, 2021, 9:17 a.m. Maximus Arillious, @.***> wrote:Well I looked ...
@bartick You'll probably want to wait for a reply from night or someone else at Discord here, which might be delayed since it is Sunday. Maximus might just be a bot account.
Learn to analyze the whole thing. Start to finish. What dobu want a "sudden
wild WidowMaker appeared"
On Sun., May 9, 2021, 9:39 a.m. Maximus Arillious, @.***>
wrote:
Idk anymore work requires payment and time. I'm just some random trolling
around high as hell on illicit substances laughing away at the wall. Your
educated right. Well why dont u fix it. Shits not free.On Sun., May 9, 2021, 9:33 a.m. Bartick Maiti, @.***>
wrote:If its not the webhook. Look at ho...
Idk man leave me alone. Im from the 9ps man not a milenial
On Sun., May 9, 2021, 9:41 a.m. Maximus Arillious, @.***>
wrote:
Learn to analyze the whole thing. Start to finish. What dobu want a
"sudden wild WidowMaker appeared"On Sun., May 9, 2021, 9:39 a.m. Maximus Arillious, @.***>
wrote:Idk anymore work requires payment and time. I'm just some random trolling
around high as hell on illicit substances laughing away at the wall. Your
educated right. Well wh...
I feel like just stating lowercase instead would be better than using some exotic regex character classes.
^[\p{Ll}\p{N}_-]{1,32}$
If we're still going the regex route, would^[a-z0-9_]{1,32}$not be easier to read? doesn't that have the same effect?
Note my earlier comment re: a-z0-9 being potentially too restrictive when
considering non-Latin characters.
(An authoritative version of the server side validation would be useful
here)
On Sun, May 9, 2021 at 11:25 AM cmsteffey @.***> wrote:
@.**** commented on this pull request.
In docs/interactions/Slash_Commands.md
https://github.com/discord/discord-api-docs/pull/2901#discussion_r628925716
:@@ -682,11 +684,11 @@ Create a ne...
also the regex you have in the pull request has - and not _
but yes, my version wouldn't include non-latin, oops
would be super nice to have this, they added voice so why not video.
This can happen on a large guild with many members. Unfortunately there's not much we can do to fix it at this time as deletion of large roles on large guilds takes some time to complete, and we hit HTTP load balancer (504) timeout.
Closing this issue per Discord's official response: https://github.com/discord/discord-api-docs/issues/1386
would be super nice to have this, they added voice so why not video.
Unfortunately there's not much we can do to fix it at this time
@jhgg is there any chance the behaviour of endpoints with this kind of behaviour could be changed in a future REST API version to account for these cases? Maybe switching to a 202 response while spawning a background task to handle the operations which are causing execution to take so long in some cases.
This sounds really great and could make things more convenient. This should be added.
Description
You can't add users to a channel when you don't have manage roles as permission overwrite in the channel.
Steps to Reproduce
Give a role manage role permissions server-wide, create a text channel, and don't set permission overwrite for it
Expected Behavior
User should be able to manage channel's permissions and add new users to the channel
Current Behavior
The user doesn't get added to a channel because of the missing permissions error
**Scr...
Description
Ability to request sensitive(oauth scoped) data via Slash Commands. "User Connections" or email are good examples of such data.
Possible Implementation. Usecase 1 (Request is optional)
- Bot sends message:
TLDR... cool event for users from Twitch, use /sign_up command to take part - User uses command; Interaction goes to Bot via gateway/webhook
- Bot (e.g. AWS Lambda) determines if user's connections already contains in Database. (Depending on the case resul...
title speaks for itself. I cant see the server bar and i need to memorize the placements. I've tried restarting my pc and restarting the app

There's already a way to show the OAuth flow in the Discord client (RPC) - it'd be cool to have a setting on a slash command so that it requires the application to be authorized with a certain OAuth scope before the command can be ran.
This repository is for issues with the API, not the client. Issues with the client should be directed either to Discord Support or to the Discord Testers guild.
That aside, I believe this issue can be fixed by following the instructions here. Do note that if you follow those instructions, you will need to login again, so make sure you h...
hey, a discord bot called dusk got taken down and i want to help the developer get their bot back up, i have tried through support but not much use
The bot owner can appeal at https://dis.gd/request

Description
The options selection interface does not display the full list of options if there are more than 10 options.
Steps to Reproduce
Just create more than 10 options.
Expected Behavior
It would be nice to add some kind of scroll so that the user can scroll through the list.
Current Behavior
Now, to see other options, you need to start typing certain characters, but this is inconvenient. Imagine you have the following options:
- Book green
...
I seem to be having the same issue, how did you fix it?
I'm not able to reproduce this issue with your application's assets. My guess is that during an outage with our media proxy a bad version of your application icon may have been cached at certain sizes. It will likely be fixed as the caches expire, but there's no immediate fix I can offer. You could change the image and reupload it to force a new icon. Re-uploading the same icon does not fix the issue since assets are stored by hash.
We have no current plans to allow users to edit sent slash commands as that is not an operation currently supported with interactions.
This is likely a wontfix since it poses no security issue or access violation.
Your videos doesn't show the full scope of what permissions you currently have versus what is being applied. In general the API behavior is tested and working as intended. You can only grant permissions you yourself have as overwrites in a channel. Managing channel permissions requires Manage Roles on the server level, but also not denied on the channel level.
This appears like a bug in the new channel permissions UI, and could be reported via our Discord Testers community: https://discord...
This is not supported in the current stable, but will be in the next release.
You can only grant permissions you yourself have as overwrites in a channel.
@night According to the docs, having it on the guild is enough:
Only permissions your bot has in the guild or channel can be allowed/denied (unless your bot has a
MANAGE_ROLESoverwrite in the channel)
So are the docs and the client wrong about that?
How is what I said different? "you yourself have" = in the guild + channel
The permission isn't being denied at the channel level, it's unset. That should mean that it resolves to True.
oh I think i misread it and thought it said he needs the permission to be allowed for himself as an overwrite in the channel; however, in this case, Moksej has the Website Moderators role which gives View Channel for the channel:

If he didn't have View Channel then he would not have been able to get to this screen in the first place.
As shown in the video, he is adding a new ...
Let's go with ... lowercase name matching ^[\w-]{1,32}$per @MinnDevelopment, which is the right line between accurate and familiar from a regex perspective.\wexpands toA-Za-z0-9_` in most regex engines (per regex101.com as a quick check).
\w expands to the Unicode spec's definition of [\p{alpha}\p{gc=Mark}\p{digit} \p{gc=Connector_Punctuation}\p{Join_Control}] in at least C#, Python, Perl, and Rust.
Note how this expansion is different than any of the regex being proposed here -- and that's because \p{Ll} and friends exclude things from other categories like \p{Lo} (which includes CJK characters) and the word separators such as _.
I think if you wanted to change this you m...
I think if you wanted to change this you might be better off keeping the \w and just mentioning that they have to be lower case.
This is what the latest commit (3eea655) does, which likely makes the regex pattern more obvious to many developers not familiar with extended Unicode tables ๐
However, this restriction doesn't make sense to me and is mostly anglocentric since most languages do not distinguish from casing and the casing rules can be surprising (certain German and Turkis...
@night Then why not enable rules-type channels for non-community servers, if this is considered okay?
[discord/discord-api-docs] Issue opened: #2907 Introduce Channel as ApplicationCommandPermissionType
Description
The introduction of Slash Command Permissions #2737 brought user and role based permissions. However, the only way to currently achieve channel-specific granularity is to sacrifice a role to a specific command.
You can do this by using a channel override for that role that has use slash commands and adding that role to be the only allowed users of that command through [application command permissions](https://discord.com/developers/docs/interactions/slash-commands#app...
Possibly java script
On Mon., May 10, 2021, 2:39 p.m. Zack, @.***> wrote:
I'm not able to reproduce this issue with your application's assets. My
guess is that during an outage with our media proxy a bad version of your
application icon may have been cached at certain sizes. It will likely be
fixed as the caches expire, but there's no immediate fix I can offer. You
could change the image and reupload it to force a new icon. Re-uploading
the same icon does not fix the issue...
We want to use this to show a link to a wiki help text with additional non-contextual help for an embed field. Here are a couple screenshots:



We woul...
GET /stage-instances/<channel_id> has been implemented now.
I seem to be having the same issue, how did you fix it?
It was fixed for a brief period but it's back. Might have to open the issue up again.
Also having the same issue, it would be great if you open the issue again.
Can only agree with the people who commented before me. I know that the original issue is for ARM on Windows but now that Apple Silicon is in everyone's hands we really need an ARM Build for OSX. The number of users I can only tell "I can't help you because Discord doesn't support Apple Silicon at the moment" is increasing every day.
Is it possible to revisit this proposal in the light of M1?
Description
It would be nice - especially for bot devs - to be sent an array of emojis that are contained in a particular message, just as other content such as users, roles, and channels are.
Why This is Needed
Both for moderation and utility; while custom emojis can simply be regexed out of a message, doing such can lead to complications, as well as the oversight when it comes to non-custom emojis, which get sent as unicode characters (AFAIK). You could regex for unicode emo...
415c423 Document message.application_id (#2908) - FasterSpeeding
becdeec Corrects slash command name regex (lowercase on... - elithrar
a4f0238 Add some periods to Group DM doc (#2879) - sevenc-nanashi
e528321 Document JSON Error Code 30037 (#2869) - GeniusTimo
35c0504 Document the need to pass required command opti... - HarmoGlace
I was facing the same thing. But if it's a feature then okay!
Description
Message Reactions can be magically removed by spamming them multiple times for a few seconds.
Steps to Reproduce
- Have a message with Message Reactions (Works best if there is only one reaction)
- Spam the reactions. Click each one repeatedly
- Watch them disappear one by one after a few seconds
Expected Behavior
The reactions should not disappear
Current Behavior
All reactions will disappear from the message completely
**Screenshots/Vide...
Can confirm this issue is happening, and it affects bots' abilities to see the reactions happening.
This is not really a bug, so I've reclassified this as a feature request. We intentionally cache these assets heavily. It's possible down the road we will change/improve this behavior.
what? No this is entirely a bug. Its not that the assets dont update night... its that they dont appear at all when you first upload. How can you cache "nothingness"?
This use to behave just fine. Something has changed along the line and broken the application page.
I did the maths and what i do for my discord bot is host it on heroku up to 18hours a day and you are left with around 50hours at the end of the month. If it is only for a few servers, you can get away with running it on heroku for most of the day and host it on your computer for the other hours. It also means that if someone tries to dos the bot with either spamming commands or causing a stack overflow (happened when i didnโt use a generator on an object but used a tuple) it will auto restar...
f1b4438 [Gateway] Guild member joined at can be null - jonzlin95
[discord/discord-api-docs] Pull request opened: #2911 \[Gateway\] Guild member joined at can be null
Noticed a small error in our docs, the joined_at timestamp can be null for users.
Under what situation can this happen?
This is an intentional design decision, and is working as intended.
It might be an intentional decision, but it's still a bad decision.
This would help us to DM users for important stuff, and this can't be misused, because if done, users can simply deauthorize the application to revoke the DM perms. Also, bots can't send important DMs because of this.
I hope this will be worked on soon! ๐
Same issue, message: #754048602942210210 message
You'll note you can react as normal for the ones following / preceding it -- just that you cannot :-1: this one (you can :+1: it though.)
Checking devtools network, the request to add the :-1: reaction is failing with a 403 response, with the json error code 50013.
<!k---
Before opening a new issue, please search existing issues: https://github.com/discord/discord-api-docs/issues
--!
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
I can provide some further insight to this.
The reaction still exists on the API, and is shown through the /channels/:id/messages/:id/reactions/:emoji endpoint:
curl -H 'Authorization: Bot ...' https://discord.com/api/v8/channels/xxx/messages/yyy/reactions/๐ฉ
[{"id": "508391840525975553", "username": "Tickets", "avatar": "c0326f3eb3834f19d41fa1be61a99615", "discriminator": "6981", "public_flags": 65536, "bot": true}]
However, the reaction doesn't show on the get message...
Further information:
It only occurs if there is 1 emoji with 1 reaction on the message it seems. If there is more than 1 type of emoji added, or if the emoji has more than 1 user reaction, it won't work.
Additionally, spamming reactions seemingly makes your client send hundreds, or even thousands, of reaction add and delete HTTP calls. Not sure whether this is related or not.

Additionally, spamming reactions seemingly makes your client send hundreds, or even thousands, of reaction add and delete HTTP calls. Not sure whether this is related or not.
When the client gets a 429 response it tries to add the reaction again
The endpoint might still only return 100 guilds, I don't think we know yet right
the title says DMs
whoops, fixed that
we'll see who has the accepted pr lol
I submitted mine
I took mine down, endpoint errors show a 200 per call cap
The new color sucks, AND the new logo sucks, please change it back!
BringBackBlurple
Thats no Issue with the API Docs lol
Description
Currently we can only edit Ephemeral Message but we can't delete Ephemeral Message through API Request.
Why This is Needed
Deleting a Ephemeral Message will help us to show a temporary message to user who used Slash Command.
Description
The permissions option need 3 additions:
- Hidden option which completely removes the command from the command selection (instead of grey it out)
- Option to globally hide/show members by id (instead of doing it per guild)
- Option to (globally) show/hide a command by Discord guild permission (eg. on all servers where ppl. got "Manage Server" they allowed using command x
Why This is Needed
While implementing permissions into my bot I encountered multiple prob...
I want this feature very much. As a developer, I think it would be easy to implement similar to a webcam. It frustrates me that I need to use a second account to stream party games, when this could be done by a bot. I could allow my users to remote activate jackbox games with commands. Please add the functionality
@OGZamasu they have previously stated there are challenges with implementing such a thing - see #1995 (comment)
@TwilightZebby Regardless, I think its a lazy response, and I still want support for it in the future. They can say they won't do it. I can still say I want it. Squeaky wheel gets the oil.
im getting

is there a way to see WHERE or to fix?
You should ask in the server for your library (in this case discord.js). This repo is for questions/etc. about Discord's API itself, not libraries people make for it.
Description
The gateway is closing my session with code 1000. Checking flowchart / asking others, this seems to be about a heartbeat time out... funnily enough, it closes with a 1000 right after receiving a heartbeat? A heartbeat it's been receiving fine for 2 hours?
Steps to Reproduce
https://gist.github.com/A5rocks/87c158c78f6ee870549ab5fbf2c134ed (code has been trimmed, but still repros this).
Expected Behavior
It doesn't close with code 1000 (which seems to toss...
which seems to toss away my session?
Close code 1000 (& 1001 iirc) aren't resumable,
If a client does not receive a heartbeat ack between its attempts at sending heartbeats, this may be due to a failed or "zombied" connection. The client should then immediately terminate the connection with a non-1000 close code, reconnect, and attempt to Resume.
(That piece of documentation is for client -> server closing, the websocket is getting closed server -> client)


I recommend to add image editing to developer portal section,when user change his avatar he can edit it proportions,but discord bot developers can't edit app's avatar proportions(
Looks like you're trying to execute a webhook, and the 404 error means you provided an incorrect ID
Just use any image editing software like MS Paint or GIMP
why? I intentionally named this "Get Template" as it uses the template code, to distinguish it from the routes that use a guild id (such as GET /guilds/{guild.id}/templates which was named "Get Guild Template")
Description
The webhook endpoints which take a webhook token in their path seem to error when a malformed token with a similar structure to integration tokens except with a different length is passed.
Steps to Reproduce
- Get a token with a similar structure to the tokens seen on interactions except with a different length (e.g. `aW50ZXJhY3Rpb246ODQyNTMyNzY1MjIzODc4NjY2OnJlUXlVMFp0VnVIOWZ3dGdOU21KcTc4OTdad2ZhOWp3WndSc3dEQ1ZRN0hjQW83TVE3NlJibTRsUE9qRHRyMWFESGVSRXNvZ29odXNOd0J...
why? I intentionally named this "Get Template" as it uses the template code, to distinguish it from the routes that use a guild id (such as GET /guilds/{guild.id}/templates which was named "Get Guild Template")
That is true I suppose, but if you are making that argument, then Discord would need to change Delete Guild Template to Delete Template to align with Invite methods.
imo delete is also correct as it uses a guild id? Delete Invite doesn't take a guild id (the Delete Invite endpoint isn't even only for guild invites)
imo delete is also correct as it uses a guild id? Delete Invite doesn't take a guild id (the Delete Invite endpoint isn't even only for guild invites)
I was referring to Discord having to change the backend of the method to just DELETE guild/templates/{template.code}
As a note, interaction webhooks are currently returned by GET /webhooks/{webhook_id}/{token} when using an application ID and interaction token.
###### Example Interaction Webhook
Description
Well with the atrocious new look for discord I think we need more themes. Mainly because the new blurple is wayyy to bright on hdr monitors/tvs and no one should have to:
- Turn down the monitor
- turn off hdr
- get special glasses
Why This is Needed
- For people with hdr screens this is too bright (for dark mode users)
- Too bright for people with eye problems
Alternatives Considered
One alternative is breaking the tos and using better di...
this is not an api feature request; for client feature requests go to https://dis.gd/feedback
I would but I can't login to that page, and this is an api request
how is it an api request, and also change your email to fix the problem.
Its an api request since this would require an api backend
Okay, so, because Discord was updated, this bug is now resolved. It now shows a message stating that the option is required.

Client information: App: 73.0 (25527) stable; Manifest: W/"beb8995122473fd451aed5d85b7d3dc2"; Build Override: N/A; Device: iPad7,5 OS 14.5.1;
For feature requests, please post on our feedback site: http://feedback.discord.com/
Community guilds can once again set a description so this commit updates the description of the description property to reflect the changes
@Lachee you got any problems related to it?
@Lachee you got any problems related to it?
- It can be missused, and probably will be.
- Discord already has issues with annoying usage of the guilds.join scope
- it adds extra complexities to the oAuth2 flow, which is mostly read-only endpoints
- it bypasses existing rules for DMS: you must share a server, you must not be blocked, they must have DMs enabled for that server.
We're adding lurker functionality to stage channels, and you'll be able to request these members (for voice state updates data)
518cd57 [Gateway] Guild member joined at can be null (#... - jonzlin95
this will be fixed in the next api deploy
This issue looks related to the root cause of #2910, which should be fixed in the next deploy.
We have no current plans to return the emoji objects for emoji in messages. The emoji syntax has all data needed to render an emoji, including its animated state, name, and identifier. This allows us to avoid additional queries when loading messages. Emojis in message text also survive emoji deletion, which results in an unresolvable emoji id.
We have no current plans to expose the ability to send direct messages via OAuth2. OAuth2 grants permission to perform actions on behalf of a user, not the application. In our system, that would mean sending a message as the authorized user over OAuth2, which is not something we would likely permit due to abuse concerns.
528b703 Custom emojis support jpeg and webp (#2872) - advaith1
Thanks for the PR, but if this is only a temporary solution then we'd prefer to hold out for an official one.
a1aa093 Update version in the sample query-string (#2882) - J-Human
Thanks for the PR, but I think descriptions would be better left in the table rather than as an alert box
imo all the other option types are pretty self-explanatory and the descriptions wouldn't be very useful; could do that though
Settings : -> Category ('Community settings')
Selecting a tab (like the rules and guidelines) and clicking the cersor button (middle mouse button) will bug and your cersor will never dissapear. You wont be able to exit the tab or even scroll down (despite moving the cersor)
For now only way to fix it is by killing discord task on task bar.
87eebf2 Update webhook docs to account for interaction ... - FasterSpeeding
d098610 Fix broken link in Thread docs (#2928) - Rodentman87
2c19572 Update description for "description" guild prop... - GamingGeek
Let me put it like this @night: According to the message object, we have a mentioned roles and a mentioned channels property. Since those can be deleted and also be unresolvable, could we not have a mentioned emojis property too?
The most useful part of this would be unicode emojis, which are otherwise extremely hard to parse, especially if you're trying to get them in every message as they don't have pretty easy to identify markings; a message can only contain emojis if they also have a colon but this isn't the case for unicode emojis
I actually proposed on discord that we have a partial emoji object like we do with users, and thus they is no querying necessary by the API unless you specifically need to know what guild it exists on or whatever.
The most useful part of this would be unicode emojis, which are otherwise extremely hard to parse, especially if you're trying to get them in every message as they don't have pretty easy to identify markings; a message can only contain emojis if they also have a colon but this isn't the case for unicode emojis
Gah. GH Mobile is not your friend. Anyway this was also partially why I opened the issue to begin with frankly. Regexing Unicode emojis is possible, but is an absolute nightmare to l...
Aho-corasick FSMs and a list of emojis provides a very effective way to handle this problem.
I'd not want to do this for every single Unicode emoji out there 2500 times per second; that's not particularly feasible to scale up. Though I guess Discord might also have an issue providing such a service as well
0c3b0f7 Clarify some subtle behavior for thread gateway... - ajpalkovic
daa13f6 Get Current User Guilds now returns up to 200 g... - FasterSpeeding
this is not intended to be documented
this is not intended to be documented
[discord-api-docs] Branch threads/gateway\-clarifications was force-pushed to `cb5e790`
Removes the current user from a thread. The thread must not be archived. Returns a 204 empty response on success. Fires a [Thread Members Update](#DOCS_TOPICS_GATEWAY/thread-members-update) Gateway event.
e2a692b move application to its own reference page (#2873) - advaith1
a5e490a formatting tweaks - ajpalkovic
We don't support image cropping or sizing in the developer portal, which is why you can't change the proportions on upload. You can use a free external image editing tool like PhotoPea or other similar tools to accomplish this in the meantime.
82b75a1 formatting tweaks - ajpalkovic
dd30916 wording tweaks - ajpalkovic
a05bcd2 Clarify some subtle behavior for thread gateway... - ajpalkovic
One of the goals of heartbeating is to track sequence number. In your log output, your sequence is always set to 1. Perhaps that is related.
This also applies to "Invalid interaction application command". A user didn't know what happened, except knowing that some issue occurred indicated by the textcolor and exclamation mark
Description
Add a new permission called USE_STICKERS (or something similar)
Why This is Needed
With the new announcement that people can create stickers in servers that have level 1+ (whenever that is fully out)

seen in this announcement
This brings up a whole lot of issues.
- There is no way to disable stickers in server channels.
- This will lead to abuse, and sending inappropriate/gore/nsfw stickers from one server to anoth...
573bda7 Document Stage instance Gateway events. - tpcstld
[discord-api-docs] Branch stage\-instance\-gateway was force-pushed to `7146b2b`
Status: Should be already available.
The promised Gateway docs. I don't think there's anything fancy about this, it's just piping Stage instances in through the gateway.
I plan to merge this in tomorrow-ish, giving a chance for anyone to ask questions or raise concerns in case I missed something disasterous.
The TL; DR is:
- Stage instances piped in through the guild object on
GUILD_CREATE. - Stage instance CRUD events piped in afterwards.
Thanks for the feedback, but general product feedback is better suited over on our feedback website: https://feedback.discord.com
Nah, it turns out it wasn't that -- turns out I messed up my reconnect (opcode 7) logic.
Whoops!
looks like in #2873 I changed some of the application object links to DOCS_TOPICS_APPLICATION instead of DOCS_RESOURCES_APPLICATION (oops); this fixes them
Description
Add a specifier to an incoming Command Interaction, indicating if it concerns a global or a guild specified command
Why This is Needed
A separate command handler from the guild based one could be helpful, especially when dealing with common executions for global commands in guilds and DMs.
Until now, the only way to achieve this is by forcing developers to keep track and manually separate global and guild based registered commands
7383265 Fix broken links to the application object (#2934) - advaith1
Nitpick, separate from my other comment: "Stage" should probably be lowercase here, as in all other instances where an object type is referred to, it seems the entire object type name is lowercase.
| stage_instances? \* | array of [stage instance](#DOCS_RESOURCES_STAGE_INSTANCE/stage-instance-object) objects | Stage instances in the guild |
Not sure why you're capitalizing "Stage". "Stage" isn't a proper noun, nor is it really referring to a product like the word "Discord" might (if that makes sense).
Stage is actually used as a proper noun in our app surfaces, so I would like to keep it consistent.

Well to be honest, it also seems odd to me that it's used as a proper noun in the app, but I think that reasoning is sound. Feel free to mark this comment as resolved.
(My other comment is about consistency in the table, so I don't think that one should be marked as resolved yet.)
7978c66 Update docs/resources/Guild.md - tpcstld
i have updated my discord recently and after update i noticed that i am unable to join voice channels, i gave all permissions in settings too for discord app. if i use discord in chrome the audio works fine but i am unable to join voice chat in app.
it was working fine before , i got this issue after update..is there anyway that i can downgrade or previous version because its really annoying.
phone - samsung
model -galaxy j7
i got an old phone if that issue is due to old phone does...
This repository is for issues with the API, not the client. Issues with the client should be directed either to Discord Support or to the Discord Testers server.
It's a possibility. Having a separate property has a few advantages
Marking a command as NSFW with a field:
- doesn't require user interaction
- allows Discord to hide it from users <18, even if the command is invoked in a public channel or...
- allows Discord to only show the command in NSFW channels
- allows Discord to add a flair to the command
There is a reason channels must be marked NSFW, and I believe the same for NSFW commands (since not every command name could imply its...
I know this is more than an API change, but I want to throw it in here anyway as an idea
Description
With more rich elements for bots coming up I came with this idea to manage bots/integrations.
The integrations page is now mainly used to see what integrations are in a guild and what they do. The idea is that developers can setup a 'settings section' for their integrations. See picture below for reference:

- All of the REST endpoints are supported
- All of the websocket events are supported
Currently been using it for about a year with one of my bots that's in 500k+ servers.
The library is split up into three components
- REST Client
- Just a rest client that implements all o...
I can confirm Detritus is in the Discord API server, if anyone needs to know.
Description
When sending a message over 4000 characters the api returns the wrong error message
Steps to Reproduce
Try sending a message with more than 4000 characters
Expected Behavior
400 with the message "Must be 2000 or fewer in length."
Current Behavior
400 with the message "Must be 4000 or fewer in length."
It is not a bug, it works as intented as the limit will be improved for nitro users (and likely bots).
Yea this feature isn't even live yet why are you making a bug report on it .
Going under 4000 still yields the "Must be 2000 or fewer in length"
Yea this feature isn't even live yet why are you making a bug report on it.
I suspect because its very easy to put way too many characters in a bot response and the API already returns this error, as the issue indicates
Getting invalid OAuth2 redirect url after login with Auth0 in react native

You should share the OAuth2 URL, as this is probably the cause if the issue
i agree and see this as a problem too
it's just annoying having to wait several minutes before being able to use assets although you can live with it in my opinion
it's more of an issue for new developers as there is no indication why or how long assets will be missing. This results in uploading the same asset multiple times and having to delete the extra ones afterwards. But if you delete one too much you'll have to upload and wait again...
i already shared auth0 url for redirect url
@advaith1 Has there been any word on this?
This option would be in the discord server settings in the role tab. It would add a button with the inscription "Add prefix" which would make that next to the button there would be a place to enter text in which you would enter a short text that would be a prefix of the role, i.e. next to your nickname on the discord (on the server where it was set) there would be a role prefix to make it easier to distinguish between discord members. The prefix back with a nickname would look like [Prefix] N...
This repo is for API things only, not client-related feature requests.
For feature requests, go post on the feedback site: http://feedback.discord.com/
to distinguish between discord members
This is what role colors are for
b0d394b Update Community_Resources.md (#2940) - cakedan
This doesn't look like an API issue
a2bfd90 Document Stage instance Gateway events. (#2933) - tpcstld
@night Sorry to ask, but has this deploy happened yet? We can still reproduce the issue, you see. Thanks!
@JohnyTheCarrot Could you send me the reaction you are seeing + the channel_id:message_id pair?
Hey, I'm not sure what's happening now but there's a different bug now. The old reactions are broken as you said was normal but new messages' reactions tend to just disappear. It seems to me that it disappears for you if another user touches the reactions. I'd also like to mention that when a user reacts to their own message, one of our bots will remove that reaction. On the user's end, nothing visually happens while on an observer's end all reactions for that emoji disappear.
Maybe you can f...
This is a bug, but won't get fixed while we test out the feature and run the experiment. Will keep this open to fix in the future!
that message looks fine to me when I load it from API endpoint.
There's 2 emojis on the message, 1 on `โ
' and 2 on 'โ'.
@JohnyTheCarrot do you have a message that was left in a the busted state?
I've tried reproing by having 1 user add the reaction and another removing the reaction, but it behaves as expected.
Description
When just typing / in the chat window all commands appear with a bot selection on the left.

When typing a command this selection disappears and just commands (sorted by popularity?) appear.

Even though there exist other bots with a settings comma...
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
This sounds like a client bug, please head over to https://discord.gg/discord-testers to report it
I'm guessing that the developer of the app (you?) didn't add this URL to the redirect list of this app
We're still waiting for this...
They're going to add it when they finish it, you don't even know what it does. Don't go around making pull requests for things you see in the datamining repo.
Same issue also on me. Seems like the deploy (?) didn't fixed it. Reactions are starting to disappear or aren't reactable anymore after deactivating the add reaction permission and waiting for a 30 minutes (in my situation). The message got created 10 days ago... users start complaining now again about the issue.
Guild: 394807885881933824
Channel: 564075573165424651
Message: 840654241516486707
should have โโ ๐
They're going to add it when they finish it, you don't even know what it does. Don't go around making pull requests for things you see in the datamining repo.
People have the right to PR changes.
And believe it or not, but not every change to the docs is made by Discord themself, which is why this Repository exists to begin with.
Your general attitude here is really unwelcoming.
@lytefast I think it seems to fix itself after a while? It's most easily reproducable with new messages. Here's a better GIF we recorded for you guys. If you need to come test it in that specific channel by posting a message yourself feel free to, just contact us with an account that is verifiably you/a discord staff account and we'll grant you the permissions to post messages there. I'm sort of clueless as to what's going on exactly.
Description
typing 'application.' triggers slash command auto-complete
Steps to Reproduce
type application. in the message box
Expected Behavior
the slash command list will not show up and discord will treat the text in your current message box like any other un-sent text message
Current Behavior
Screenshots/Videos
Client and System Information
Stable 85172 (99bc85a)
OS X 10.15.6
Web client, Safari
Not just that, it behaves like a /, too
Does not reproduce turning off the Application Command Suggestion Experiment experiment.
Can confirm this happens for me as well:

However, you should be reporting it in the Discord Testers server since this is not a bug in the API, but in the client.
Oh yeah, about that, I have failed the quiz (sadly) so I'll just use https://dis.gd/bugreport
It might be better to translate always the color to a hex value, or having color-name and color-hex be separate options so that bots don't have to filter the input.
| 1 << 18 | Discord Certified Moderator |
I found the bug, and working to deploy fix:
For duplicate delete requests (which can happen due to races in spam/retry actions) we were sending down gateway events for the same user down to the clients.
This is an issue because the clients don't have the full context to make a distinction on whether the user_id
sent from the dispatch is already accounted for (removed).
Clients simply check if the user_id == me.id and if not decrement.
Use case
- A + B both react with :+1: ...
this is not a bug, this is the intended feature in that experiment
When you are sending a message, using / now won't work. It will just make the / command UI appear. Making it so you can't send the message.
This is intentional. To bypass it just put a space before the /.
fae9a6d Fix typo (override -> overwrite) (#2949) - RedDaedalus
Description
Occasionally (it seems to vary from person to person) opening a DM (be it a brand new DM or with a friend), trying to check mutual servers with someone (either at the top of a DM or by clicking their profile) will return "No Mutual Servers." even if you do share a guild with the person. A quick inspection at network activity reveals the API returns a 429 (Too Many Requests), with seemingly no indication that ratelimits are being encroached beforehand.
*Steps to Reproduce...
Thanks for the report, but this issue tracker is for the Discord Bot API. This seems unrelated.
Seems like the bug with disappearing reactions is fixed, but 403 Missing Permissions on existing reactions isn't fixed yet, as stated here: https://github.com/discord/discord-api-docs/issues/2896#issuecomment-843083997
Got thrown again some minutes ago.
Seems like the bug with disappearing reactions is fixed, but 403 Missing Permissions on existing reactions isn't fixed yet, as stated here: #2896 (comment)
Got thrown again some minutes ago.EDIT: seems that users aren't able to react on โ only, which is currently the last element returned in the reactions array (?)
See https://github.com/discord/discord-api-docs/issues/2896#issuecomment-842592704...
This PR adds documentation for the new banner and bio fields on the User object.
Not very descriptive, how do you use it?
You can't use it yet because no one knows for what it will be used for, however those two fields are already present in v9's API responses.
Then this PR is completely useless.
banner hash should redirect to image formatting
this is not data bots can access, and thus makes no sense to document at this time
55cd3d7 Add certified moderator user flag (#2946) - GregTCLTK
@BanTheNons Not true. Spoke to a Trust and Safety employee about dis. The badge will be available this Friday after taking a different exam separate from DMA. Passing users will be given this badge.
Erica, Rythm Admin
Cannot wait for the new badge to come out. This information from Erica is valid and has come with proper authorisation.
Panley
my moto is all I care is flexing my user to server ratio
get linked
@BanTheNons Not true. Spoke to a Trust and Safety employee about dis. The badge will be available this Friday after taking a different exam separate from DMA. Passing users will be given this badge.
Erica, Rythm Admin
Cannot wait for the new badge to come out. This information from Erica is valid and has come with proper authorisation.
Panley
my moto is all I care is flexing my user to server ratio
get linked
imagine spending your time badly impersonating other p...
Description
POSTing to /stage-instances a channel_id that already has an associated stage instance creates a new stage instance object with a unique ID, as well as dispatching the STAGE_INSTANCE_CREATE event. This seems peculiar as it may lead to accidental inconsistencies in cache since the ID is always unique.
Steps to Reproduce
Request POST /api/v9/stage-instances {"channel_id": 123456789, "topic": "test"} more than once.
The requests do not need to be done i...
@BanTheNons Not true. Spoke to a Trust and Safety employee about dis. The badge will be available this Friday after taking a different exam separate from DMA. Passing users will be given this badge.
Erica, Rythm AdminCannot wait for the new badge to come out. This information from Erica is valid and has come with proper authorisation.
Panley
my moto is all I care is flexing my user to server ratio
get linkedimagine spending your time badly imp...
78352cd Document Stage discovery fields. - tpcstld
Summary
Stage discovery and public stages are rolling out soon. This is the corresponding developer documentation. :) APIs should be already usable.
973be86 Remove Use VAD permission from Stage channels. - tpcstld
Status: Client changes not implemented yet. (No API changes.)
Summary
TL; DR: We want to reduce some footguns we noticed when people become a speaker in stage channels.
We have observed many times for users where they:
- Join a stage channel as an audience.
- Raise their hand.
- Get invited to speak.
- Find themselves still muted because
Use VADwas turned off for the voice channel. - ...
- Awkward silence while people figure things out.
To avoid this situati...
privacy_level should hyperlink DOCS_RESOURCES_STAGE_INSTANCE/privacy-level and other parts that have this property
Is this suppose to say Integer maybe value instead?
this is payback for the ban. forgi is so data conscious now you can have your id here.
This PR adds documentation for the MANAGE_EVENTS permission in the Permissions topic.
[discord/discord-api-docs] New comment on pull request #2975: Document \`MANAGE\_EVENTS\` permission
I was just informed by @advaith1 that this probably will be documented by y'all once the new stage additions drop, so feel free to close this PR if you want to document this yourself, I simply saw the permission in the client and didn't see anything on the repository about it yet, so I figured I'd add it.
[discord/discord-api-docs] New comment on pull request #2975: Document \`MANAGE\_EVENTS\` permission
The intuition is correct, we're not ready to publicly document this permission yet. :) This stuff is still in the early stages.
Thanks for the contribution regardless!
One day we will have a good way to make these links. :blobsweat:
33e0dfc Fix link in opcodes_and_status_codes (#2974) - Apacheli
This has been fixed (although the error message may slightly change in the near future).
You can no longer create a stage instance when the channel already has a stage instance.
docs are pretty inconsistent about this, a bunch of tables do use"Integer"
docs are pretty inconsistent about this, a bunch of tables do use "Integer"
Then they should also be corrected. I could probably open another PR for that sometime during the weekend.
You missed them by 1.
1 is public.
2 is guild_only.
Default avatar url without size paramter
![]()
Default avatar url with size parameter
![]()
@sayantan300 This is due to Cloudfare caching. If you do not specify anything after the name Cloudfare will used the cache file from one of their cache servers. When specifying anything after it (in your case you found out with size, but you can do basically anything, ?nocache for example). Through the following weeks or months, the new avatars should kick in and you will not be seeing any old ones (or sooner if Discord make a hard clear of the cache)
Description
The Join Thread and Add Thread Member endpoints' documentation states that the method to use is PUT. However, using this method yields a 405: Method Not Allowed response.
Steps to Reproduce
Create a thread in the client where the bot is not a member yet. As the bot, send a PUT request to /channels/{thread-id}/thread-members/@me and/or add someone else via channels/{thread-id}/thread-members/{user-id}
Expected Behavior
The method shoul...
iirc it is intentionally documented as PUT and the API will be changed from POST to PUT in the future
4a4063f Where is my English static analyzer. - tpcstld
78f98fa Document Stage discovery fields. (#2971) - tpcstld
c151c82 Create Webhook avatar is optional (#2979) - itohatweb
Want to remove the docs for nsfw while you're at it? It'll go away in a few months once enough of our clients update
Description
A sort of follow-up to issue 2410, I was hoping to be able to access and use the interaction response message. I am able to use the webhooks/${webhook.id}/${interaction.token}/messages/@original endpoint to acquire the message, but there are no message methods on the returned message object. For my use case, I was hoping to attach a reactionCollector to the message, which would need either the createReactionColl...
You can use the message like any other message object, but createReactionCollector and awaitReactions are not API concepts. If you're using discord.js, you can ask in the discord.js server to learn how to use those features with interaction response messages (it is possible).
(but just FYI, buttons are releasing next week and those might solve your use case better than reactions)
Thanks for the quick response! Yeah forgot that the API is not a JS specific endpoint, can only return JSON. I'll definitely be on the lookout for those buttons in that case
We block connections to hetzner due to their overzealous automated IDS system spamming our hosting providers with abuse e-mails. We have no plans to unblock them, as they have no plans to fix their broken system.
I felt over this reply, as I've just got the issue on a OVH dedicated server, with a german IP.
Is it the same thing for OVH, or is it a region thing? ๐ค
Description
As I understand the current API behaviour, you can set the default_permission for a command to true or false, then override this using the Edit Application Command Permissions in the following ways
- If
default_permission: false, you can grant access to individuals or roles by settingApplicationCommandPermissions#permission: true - If
default_permission: true, you can block access to individuals or roles by setting by setting `ApplicationCommandPermissi...
I have to comment on this, but why is the order the way it is? Wouldn't it have made more sense to have the levels and corresponding values sorted from least to most NSFW here?
Like (Assuming this order is right... Can't tell which is more NSFW of Explicit and age_restricted) having the order SAFE, DEFAULT (Is this higher than safe?), AGE_RESTRICTED, EXPLICIT would've made more sense since now Safe is between two NSFW ratings, which is weird from a design perspective.
But again ...
yeah, I noticed this too. It's going from EXPLICIT to SAFE and then again back to AGE_RESTRICTED. Seems a bit off.
According to some chat in JDA is this due to the NSFWLevel existing before and already having DEFAULT and EXPLICIT and now SAFE and AGE_RESTRICTED where added?
That does make sense, but yeah... just feels so off...
So has this feature been implemented yet? its been a year
I would like to know how many times a user has boosted a server.
Yeah this is needed. It's a duplicate, but the other thread has a different original topic and the discussion is not about the awareness of the user's boosts, only the total count of the server itself. Being able to see if a user has 1 boosts or 2, is totally integral to us using this pay-for-privilege system discord has implemented. We want to help discord make money, let us see this info!
chiefly the "Gift Nitro" feature which Discord feels is so important that it needs a button directly next to the file/image upload button in the mobile app UI
Gifts should also be user specific, and users should be able to disable gift reception, without revealing the gifter.
chiefly the "Gift Nitro" feature which Discord feels is so important that it needs a button directly next to the file/image upload button in the mobile app UI
Gifts should also be user specific, and users should be able to disable gift reception, without the gifter knowing.
Those are all valid opinions; however, our point is that you should voice them in a relevant discussion, or create one if there's not one already.
Rtc_region was introduced in #2692 and in client side, you can't select the guild region anymore.
Should probably be removed.

This still field exists and removing it from the documentation would constitute as a breaking change in v6 to v8 so its removal might need a new API version bump such as v9.
This still field exists and removing it from the documentation would constitute as a breaking change in v6 to v8 so its removal might need a new API version bump such as v9.
Ok, we will see
Description
As title says.
Why This is Needed
Some communities allow everyone to view their audit log but they cannot currently let them view the ban list because the ban list is currently only readable by those who can apply the bans.
Additional Details
This flag should not require MFA in cases when MFA is required to be enabled for moderation actions.
Yalvarฤฑrฤฑm kardeลim, kรถtรผ gรถrรผndรผฤรผmรผz iรงin biz Tรผrkleri durdurun. senin gibi insanlar bizi kรถtรผ insanlar gibi gรถsteriyor. kes ลunu.
รnce nitro dolandฤฑrฤฑcฤฑlฤฑฤฤฑ, Tรผrkler rozet iรงin bot yaratฤฑyor, bunlarฤฑn hepsi bizi kรถtรผ gรถsteriyor. bu iลe yaramaz yorum erkinalp ile lรผtfen durun.
For general product feature requests, please post on our feedback site: http://feedback.discord.com/
[discord/discord-api-docs] New comment on issue #2919: Delete Ephemeral Message through API Endpoint
I'm not sure the point of this - ephemeral messages are already temporary and can be dismissed by the user.
[discord/discord-api-docs] New comment on issue #2919: Delete Ephemeral Message through API Endpoint
Say you're running a command which uses buttons and ephemeral messages.
In some cases you'll have multiple messages displayed, and editing the message takes up horizonal space, especially if the user is trying to perform other actions at the same time
When creating a thread, the type is submitted. To create a private thread (Only in TEXT_CHANNEL, not on NEWS_CHANNEL) specify type 12.
Description
Allow us to define maximum and minimum values for integer options. The number that the executor then returns must be in the range of the specified max and min values.
Why This is Needed
Example: A volume command for music bots. This would allow users to select a volume between 0 and 200 only.
Alternatives Considered
Use choices, but they are limited to 25 so ranges would be nice.
Guys, stop bumping this issue thread it's just making this re-appear as a new notification for everyone else watching.
Things like these take time, considering the priorities of the developers and scale of the API it will most likely be a while before such a feature could possibly be added. I too am waiting but I respect the devs taking their time to focus on other things first.
The issue is closed, there is no point in posting here at all. It's CLOSED, meaning, it's no one looking at it, or an identical existing issue exists.
Besides; it's quite normal to "bump" issues saying you want a feature, it's one of the ways devs know what feature to prioritize. But bumping a closed issue will do nothing.
this param no longer exists, the clients still send it but it doesn't do anything
Description
Right now, interactions and webhooks can send multiple embeds in their messages. Bots are limited to sending a single embed per message and this is an inconsistency that should be resolved. Please change the embed field to embeds in Create Message.
Why This is Needed
The API should be consistent and accept the same message fields for all message endpoints. This is also very annoy...
Description
Non-GIF emotes sent from webhooks with "a:" format (which indicates that it's animated), returns ERROR IMAGE and breaks scrolling on reply
Steps to Reproduce
- Create server, create a webhook and copy webhook URL into https://reqbin.com/ and make a "POST" request
- Get the Emote ID and Syntax from the non-gif emote
- At "Content" tab on reqbin, choose JSON, inside of it copy paste: {"content": "Replace this with emote ID syntax "} and hit "Send"
You can use thi...
This sounds like a client bug, not an API bug. You can report it at https://discord.gg/discord-testers.
This sounds like a client bug, not an API bug. You can report it at https://discord.gg/discord-testers.
they literally brought me here
Tell them they're incorrect for directing you here. This is a client bug.
Tell them they're incorrect for directing you here. This is a client bug.
hm, I thought it made sense though, because the Webhook seems to have access to control emotes even more
the scrolling thing is just something it causes
You can also remove the a: from a GIF emote. What it does is, it will simply not play it.
While the scrolling issue is a client issue, it shouldn't actually be encountered because the API should change the emoji to plaintext while sending; looks like it doesn't check that for webhooks so it actually is an API issue
You can also remove the
a:from a GIF emote. What it does is, it will simply not play it.
I think, this is fine. But it not existing, not.
Webhooks have more access, they can access all emote IDs and even ping everything.
Description
Ability to disable webhook override regarding it pinging all roles.
Why This is Needed
Webhooks can ping everything even roles that have pinging disabled.
It would help people setting up webhooks, not todo 100 workarounds, just to do a safe and simple integration.
If you manage the integration you can set allowed mentions on webhook post to disable role & everyone pings. This would still be nice for third party integrations though.
I believe this has/will be changed to inherit the ability to ping @everyone from the @everyone role
I believe this has/will be changed to inherit the ability to ping @everyone from the @everyone role
I believe that was only changed for interaction webhooks not for all webhooks.
Description
If a bot do not have an applications avatar the slash command item chooser should then default to the bot icon. Lots of Turkish developers are confused why it show defaulted discord logo icon. It shall default to the bot icon if no applications logo is set. It is not very clear for developers.
Why This is Needed
This would make it easier and less confusiones for developers about why it have default one.
MY ENGLISH NOT VERY GOOD I USE GOOGLE TRANSLATE
I believe this has/will be changed to inherit the ability to ping @everyone from the @everyone role
I believe that was only changed for interaction webhooks not for all webhooks.
there is an "interaction webhook" ?
this param no longer exists, the clients still send it but it doesn't do anything
Whats the alternative?
There is one endpoint for creating private threads, and another endpoint for creating public and announcement threads (depending on the channel type)
[discord/discord-api-docs] New comment on issue #2919: Delete Ephemeral Message through API Endpoint
It should be possible to at least fetch an ephemeral reply.
POST /interactions/<interaction_id>/<interaction_token>/callback always returns a 204, ideally this would just return the Message object to us like POST /channels/<channel_id>/messages does, but that isn't the case currently.
For a regular response you can instead use GET /webhooks/<application_id>/<interaction_token>/messages/@original to fetch it, but this doesn't work for ephemeral messages - the API will return `Disco...
Description
The API POST https://discord.com/api/v6/lobbies/search documentation states that for the filter field, it expects a SearchFilter object, whereas it actually expects a SearchFilter array.
The issue is the same for the sort field, which states it expects a SearchSort object, whereas it actually expects a SearchSort array
Steps to Reproduce
The API can be found at:
https://discord.com/developers/docs/game-sdk/lobbies#create-lobby-search
Description
I have created a Discord Bot to manage the creation of Lobbies for my game Sector's Edge. It does this using the /lobbies API as shown here: https://discord.com/developers/docs/game-sdk/lobbies#the-api-way
After creating a lobby with https://discord.com/api/v6/lobbies, a PATCH request to https://discord.com/api/v6/lobbies/ returns the error Code 10031 Unknown Lobby.
Steps to Reproduce
Step 1)
POST to https://discord.com/api/v6/lobbies with the JS...
Description
A proper a lisence should be added to the repository so people can prooerly contribute to it.
Why This is Needed
Without a lisence the repo is in a legal limbo and it technically isnt allowed to contribute to it.
Additional Details
Apache 2.0 or MIT lisence arw good for the repo
By submitting pull requests to this repository, you waive any rights or ownership of the included contents to Discord. Contributions to this repository must conform to the Discord App TOS.
https://github.com/discord/discord-api-docs/blob/master/CONTRIBUTING.md
[discord/discord-api-docs] Issue opened: #2993 Getting an incorrect guild snowflake on Message event
Description
I am using Discord.js to interface with the API, and trying to discriminate which commands can be used in which guilds by reading the guild snowflake in Message.
I am getting an incorrect guild snowflake, for basically every guild my bot has access to.
Steps to Reproduce
I've contacted people from Discord.js directly along with the relevant code snippets to try to reproduce the issue, unsuccessfully.
Only my bot is encountering this issue as far as I know.
...
While you have not provided any code, I can deduce your issue is because you used the assignment operator over the strict equality operator:
This means, somewhere in your code, you're doing the following:
if (message.guild.id = '846220996230905867') {
// ...
}
The = here must be changed to a ===.
So yeah, not a Discord bug, but rather one in your own code.
I'm actually not performing any assignment on message.
The only thing my code does is send guild.id from the unmodified, raw Message event.
A correction is in order, you've correctly identified it.
I was doing an assignment on a condition by error somewhere else.
Apologies for the time, thanks again
It's an enum, not a monotonically increasing weight
Can you provide an example command payload and permission payload?
Client changes have began rolling out to all platforms, so I'll be merging this now.
20f9f75 Remove Use VAD permission from Stage channels. ... - tpcstld
Command payload:
{
"name": "test",
"description": "A test command",
"default_permission": true
}
Permissions payload:
{
"id": "12345678987654321", // insert your own role ID here
"type": 1,
"permission": true
}
From my testing, this will cause the command to appear unavailable to users who do not have the "12345678987654321" Role. The command is unselectable, but will still function if manually typed.
Description
A Guild Member Leave event is emitted when a user leaves a server from preview mode.
Steps to Reproduce
- Join a server in preview/lurker mode.
- Click away to leave without fully joining.
- A Guild Member Leave event is emitted, even though they weren't a member and there was no corresponding Guild Member Add event.
Expected Behaviour
No event is emitted when leaving a server from preview mode.
Current Behaviour
A Guild Member Leave event is emitted.
ApplicationCommandInteractionDataResolved was weirdly worded and hard to understand, made some modifications to clearify what the properties actually are
@RedDaedalus agreed, something more like this?
bump, someone better get on this fast.
Description
This feature should allow users to enter emojis, like the roles & channels, etc types.
Why This is Needed
This allows users to specify emojis, both custom and default, to be used in interactions. The only current way is using a string argument, and validating it. While this is easy enough for custom emojis, it's trickier for default ones. Other issues in this repo have presented how discord uses a modified version of twemoji 12, and the mobile clients also send some ...
Also fixes some header consistency for some events
This field is still present in the API for v6/v8, so yeah, we shouldn't remove it from the docs. It does not function anymore, though, since we've moved to channel-specific voice regions. Rather than removing it from the docs, perhaps a note could be added explaining it's a NOOP.
We'll get it removed in v9.
This also seems to be happening even if the user is banned from the server and is previewing it. (I think that'd be an extension to this issue, and another issue where banned members can preview servers.)
I've been witnessing it in a server that I'm a Community Lead in on several occasions.
This also seems to be happening even if the user is banned from the server and is previewing it. (I think that'd be an extension to this issue, and another issue where banned members can preview servers.)
I've been witnessing it in a server that I'm a Community Lead in on several occasions.
We are also having this issue with banned users previewing our server.
I noticed a couple things while implementing the gateway -- fixed them :)
This field is still present in the API for v6/v8, so yeah, we shouldn't remove it from the docs. It does not function anymore, though, since we've moved to channel-specific voice regions. Rather than removing it from the docs, perhaps a note could be added explaining it's a NOOP.
We'll get it removed in v9.
ok
Rtc_region was introduced in #2692 and in client side, you can't select the guild region anymore.
It should deprecated.

@msciotti that should be correct right?
Followup of #2982
Description
In some cases, the Embed image isn't visible. From what I know this is caused by a too-short timeout.
This happens when using:
- Discord attachment proxy links
- Discord attachment links
- Custom Links
My assumption: Discord tries to fetch the image. If the timeout is reached no image is shown. This is fine when sending a dead link or a link to a very busy server. In this case, it regularly fails also if sending links of Discord attachments itself (which should be fe...
Description
Desktop client cuts off slash command parameters. This is an issue when many parameters are optional and the bot end-user would like to choose one of the parameters "off-screen". The end-user must know to make the Discord window WIDE enough in order to select the parameter they wish to populate. This isn't an issue on mobile (android) as the parameters are 'swipe-able', so scrolling to the parameter the user desires is intuitive.
Steps to Reproduce
create a slash...
Description
A slash command with an option of type: 6 fails on mobile (Android) client when the discord user referenced is not in the same channel. The same slash command works fine on desktop client when the discord user referenced isn't in the same channel.
Steps to Reproduce
execute a slash command on desktop that has an option of type 6 while the referenced user is not in the channel. Notice that this succeeds.
now execute the same slash command on mobile (Android)...
pretty sure this is intended, as it's linking to the identify section
Description
Add an endpoint that could be used to make bots "play" a game, similar to the gamesdk, with support for timestamps, small and large images, etc.
Why This is Needed
This would allow for more in depth at-a-glance information for users, including things like uptime, help commands, and even allow bots to add buttons linking to things like there help site.
Alternatives Considered
- Putting information in a "playing" status, however this doesn't allow for dynamicall...
in other areas of the docs the entire Identifying word is a hyperlink

IT would be cool to not require an entire server for stuff like this, so yeah I agree with this and that way you can agree within the client, or there should be a built in way to the client to invite bots or at least for desktop versions(as it's annoying sometimes to open a window to invite bots.
People have made bridges already, and also for revolt.chat but yeah.
pretty sure region still exists to guild objects(it's still used), but every voice channel can have their own region too.
bf407ae Message Components and Buttons - msciotti
acfed76 Message Components and Buttons (#3007) - msciotti
It is pretty silly to have half a word hyperlinked, though. I'll take this ๐
9427d9e fixed a small but annoying issue (#3005) - DARKDRAGON532
936ecb8 fix guild/slack param and mod welcome screen (#... - Apacheli
9be481a Made the ApplicationCommandInteractionDataResol... - AlternativeCorn
It should be marked as optional as the above example doesn't include it
Changed the -> that
61aa545 Fix changelog interaction callback link (#3009) - cmsteffey
Description
When sending a message with buttons in a dm does not send.
Steps to Reproduce
Send a message to a dm channel with a component in it.
Expected Behavior
The button should send, or it should be documented that you can't do this.
Current Behavior
The button doesn't send.
Screenshots/Videos

 returns a "this field is required" error.
Steps to Reproduce
Send a message with the following payload:
{
"content":"Example message",
"components":[
{
"type":1,
"components":[
{
"type":1,
"style":1,
"label":"test",
"custom_id":"123"
}
]
}
...
If Discord allowed bot developers to identify how many times a user has boosted a server, we could incentivize that; we would make Discord more revenue.
These Discord discussions are just graveyards for ideas which should be obvious to a software designer. When Discord is long dead, we'll still be able to come back to these threads and see in clear black-and-white why the company went under.
Description
the canary and ptb dev portals are missing the documentation for buttons and message components.
Steps to Reproduce
- go to the stable interactions documentation
- note that it loads correctly and is visible on the list of pages to the left
- go to the ptb
or [canary](https://canary.discord.com/developers/docs/interact...
Description
The List Active Threads endpoint returns a "404 Not Found" response.
Steps to Reproduce
Perform a GET request to /channels/{channel-id}/threads/active with a valid channel id.
Expected Behavior
It should return the list of active threads.
Current Behavior
It returns an error response of HTTP code 404.
Additional Context
The channel I used (837068144862298163) exists and is accessible to my app, I verified that the ID is correc...
The stable docs are missing them too for me. I think there is a caching issue on the entire domain not just docs.
800b81b Describe components field on messages as an a... - tim-smart
1ce0fd4 Add child components field to Component table... - tim-smart
These Discord discussions are just graveyards for ideas which should be obvious to a software designer. When Discord is long dead, we'll still be able to come back to these threads and see in clear black-and-white why the company went under.
@akirablaid
Sorry to be that person, but comments like this aren't helpful to anyone. Discord is well-known for actually listening to it's userbase.
May I suggest constructive criticism instead of "this should be obvious". For instance, what do...
The stable docs are missing them too for me. I think there is a caching issue on the entire domain not just docs.
works fine on stable for me, chredge version 90.0.818.66
This library doesn't handle rate limits.
- [discordpy-slash](https://github.com/TricolorHen061/discordpy-slash)
@MinnDevelopment Thanks for reminding me! I updated the code, and it handles rate limiting now.
Description
When editing a message, fields such as content can be null to remove them. However, when responding to a component interaction with an InteractionCallbackType of 7 (UpdateMessage), you can't use null to unset fields.
Why This is Needed
This can be useful to edit a message with content into a message with an embed and no content.
Alternatives Considered
An alternative would be to set the content as a zero-width character.
we have to solve the virus that circulates, it's called my new Game, When a
person sends it to you it auto-downloads
El vie., 28 may. 2021 7:46, APixel Visuals @.***>
escribiรณ:
Description
When editing a message, fields such as content can be null to remove
them. However, when responding to a component interaction with an
InteractionCallbackType of 7 (UpdateMessage), you can't use null to unset
fields.Why This is Needed
This can be useful to edit a message wit...
The lack of an extra line here seems to be leading to this being rendered as a part of the heading rather than as a table in docs site.

yes the buttons are made available to developers, but the colors are very limited. We need to be able to customize these colors. or more colors are required. (like rgb) I suggest you add this.
Description
Button ephemeral replies are not there when jumping to present
Steps to Reproduce
- Send a message with buttons that trigger an ephemeral reply.
- Send enough messages after so that you get the "Jump to present" option when viewing the button message. Note: You can also test this on the [DDevs server](#847167520711639040 message)
- Click the button to trigger an ephemeral reply. Observe the "New messag...
This is a client bug, not an API one. Ephemeral messages are never stored as actual messages. You can report it at https://discord.gg/discord-testers
Further info you can add to your report:
The bug is caused by Jump To Present button re-requesting the messages and showing the new ones only, which removes the ephemeral ones.
Removal
- Dscord isn't maintained since 2 years.
Add
- DSharpPlus.SlashCommands, maintained by @IDoEverything
The previous hyperlink for ApplicationCommandInteractionDataResolved.type linked to https://discord.com/developers/, most likely due to the missing #.
be79b22 fix: Add a # to the type hyperlink (#3025) - ToxicKidz
I'm pretty sure I updated all the backlinks? However, I believe this change is necessary for parse-ability reasons (people may expect data structures to all be h6es, but in slash commands they're a mix of h6 and h2....)
Additionally, I updated the warning about webhooks being able to mention everyone. (I am told that that is no longer the case, I may be wrong though).
I really messed up the table formatting, but I'm not sure how they should be formatted :p
RE dscord: https://github.com/discord/discord-api-docs/pull/939#issuecomment-489724283
I believe all the removal of libraries like it should probably wait on v6 being removed. (They... probably still work? There's an open PR on dscord that implies the opposite but oh well).
Let me push this topic once more with a more detailed version of how this could work out.
I actually tried reaching out to Discord through their support to hopefully get ahold of someone from the production team.
Although the support said "Yeah I'll forward this to production", many follow up messages over the last few months were left unresponded.
Please hear me out. I know its a long text
I work in IT security - Specifically E-Mail security, so working against spammers, scammers...
Yeah it is that simple. You got a clique of the comfortable and clueless to convince though, and I don't know if that'll do it.
Good luck.
In my 4 years on this platform - No one who was harmless ever said the word "buy" in a DM, from a server I NEVER wrote a message on, a person I NEVER spoke to before. EVER. Show me anyone who did. People simply do not do this.
I don't buy it
In my 4 years on this platform - No one who was harmless ever said the word "buy" in a DM, from a server I NEVER wrote a message on, a person I NEVER spoke to before. EVER. Show me anyone who did. People simply do not do this.
I don't buy it
Unless you perform a moderation role or any other administrative role on a server - If you never send a single message, people don't message you "just to make friends" unless its extremely small and tightly nit communities and those ...
On a more serious note, we have no plans to pursue vigilante moderation. If you come across behavior which breaks our TOS, report it to us.
On a more serious note, we have no plans to pursue vigilante moderation. If you come across behavior which breaks our TOS, report it to us.
Trust and Safety, according to their own docs cannot perform actions against scammers who wipe their chats. Reports so far have shown no effect as soon as the scammers didn't get the result they wanted, they wiped their chats and their accounts are still actively being used to this day.
Fighting scam spam is vigilante moderation. Got it, thanks for clarifying.
Trust and Safety, according to their own docs cannot perform actions against scammers who wipe their chats
If the message is reported in-app then it is saved and t&s will be able to see it after it is deleted, for more info see https://dis.gd/dma104
Trust and Safety, according to their own docs cannot perform actions against scammers who wipe their chats
If the message is reported in-app then it is saved and t&s will be able to see it after it is deleted, for more info see https://dis.gd/dma104
Oh wow. This is something I haven't even be aware of for years.
The first official result I get when googling is this help article (https://support.discord.com/hc/de/articles/360000291932-Einen-Fall-richtig-bei-unserem-Trus...
Trust and Safety, according to their own docs cannot perform actions against scammers who wipe their chats
If the message is reported in-app then it is saved and t&s will be able to see it after it is deleted, for more info see https://dis.gd/dma104
I just checked and that option does not show up for me at all in the app.
currently it's only open to everyone on mobile (iOS and android), on desktop it's only available while deleting a message or if you're in certain programs
Not to mention that in the alternative case, you just have to make the argument a string and validate it. Being able to reference a message in a command would be extremely valuable:
- Moderation tools:
/report,/delete,/pin, etc. - Q&A Helpers: Trigger a search for a topic on your Wiki by replying to someone's message with a
/searchcommand. - Attachments: A work around for not having an attachment argument type, simply respond to a message with an attachment in it.
- "Thank you"...
just wanted to mention that adding context (right-click) menu items is planned and were in the figma prototypes, once that releases it'll be a better solution for message actions than reply slash commands
Ah, well that's something to look forward to. Though I think reply slash commands would still be quite valuable.
Description
Was a discussion in Discord Testers once. The https://discord.com/api/v9/guilds/(guild_id)/templates/(template_code) has a limit of 152133 characters for serialized_source_guild apperantly.
Steps to Reproduce
Try it out with this template https://discord.new/ZXxRx7mP2mRT
then create a channel
then try to save the template
Expected Behavior
More limit increase and more rate limit increase for templates?
Current Behavior
There is a limit
Cn't change the label hmmm ๐ค
4c46246 note component validation - devsnek
5859f29 Update Message_Components.md - devsnek
90c469d Update Message_Components.md - devsnek
Description
invalid links on the documentation section of the discord.com/developers will never show a 404
Expected Behavior
a redirect to the dev site's 404 page
Current Behavior
a loading screen that does not go away
Screenshots/Videos

Client and System Information
firefox 88 (stable), 89 (dev), and 90a (nightly), windows ten home (20h2) (tes...
It's always been like this. They really don't have a 404 page.
#1654
Oh, nice. Didn't know it was there.
I really messed up the table formatting
Is that the format they use? Cause I remember there being two specific formats (|-------| vs | ----- |) and since I couldn't figure out which to use, I just defaulted to not updating the tables :p
Description
ok so, a new InteractionResponseType to show that the request sent by a button is received by showing a small success line or some pop-up
Why This is Needed
since the buttons don't show if the request sent by them is handled || received, the users keep spamming the button, so to show that their request has been received there can be small tooltip (for desktop toast for phones) or some small success line, like we do in normal prefix commands, popping up would b...
In my opinion, custom colors isn't a good idea, but having a wide range of available colors to select from should do the task.

I'm against this. The button colours are standard UX buttons that denote primary (blurple), secondary (grey), success (the green one), and failure (the red one). Generally most sites try not to deviate by providing different colours since for the user the colour of the button has some preconceived context in what the button does. Deviating from this doesn't seem ideal, though developers can (and probably will) misuse the colours for their own purpose.
Description
Steps to Reproduce
- Make any request to a CDN object with an Authorization header set, the header can be empty or have a token for another api
Expected Behavior
Still Resolves the asset
Current Behavior
Errors with HTML response
Screenshots/Videos

 without only depending on the text content.
Why This is Needed
Using multiple buttons with different text lengths is rather common, and so is the issue of them not being aligned. It makes buttons unpleasant to look at, especially on mobile devices.
Alternatives Considered
Not much I can personally think of, besides rewording your labels to match a cert...
Another thing that this could add a better solution for is older messages with buttons. If you respond ephemerally or non-ephemerally as a new message to these older messages, the user has now lost their position in chat to go view that message. This would provide a viable way to send quick feedback in the users field of view without editing the original message.
Description
It would be nice if there was a form component for sending multiple component inputs in a single payload. The way I envision this working would be to have a Form component that works similarly to the Action Row, where it has a component field that holds other components. When a user presses a button or makes a selection with a Select component or uses any other future component, instead of immediately sending a payload to the application, it would wait until a "Submit" button...
tรผrk dolandฤฑrฤฑcฤฑlar bunu รผcretsiz nitro dolandฤฑrฤฑcฤฑlฤฑฤฤฑ iรงin kullanacak ve insanlardan hesap ลifresini girmelerini isteyecek. Bu kรถtรผ. bu รงok hฤฑzlฤฑ suistimal edilir.
Here is a video example:
When trying to transition from a choice based option, to a string option, the choice based option doesn't "stick".
This results in the user being unable to send the command.
Using Android app version 1.17.0
Description
components field on the message object has an invalid link.
Steps to Reproduce
Click the component link in the components field on the (message object](https://discord.com/developers/docs/resources/channel#message-object).
Expected Behavior
Should link to the component object.
Current Behavior
Links to the entire [components page](https://discord.c...
It seems like they rolled out on Desktop.
Working on:
Stable 86447 (6b2c76f)
Host 1.0.9002
Windows 10 64-Bit (10.0.19042)
On the current IOS Version 76.0 (25766) it doesn't show up. It might be included in a future update.
gereksiz yorumlar yapmaya gerek yok. Bรถyle gereksiz hareketler yaptฤฑฤฤฑnฤฑzda bir e-posta gรถnderirsiniz.
Description
There is consistent, but undefined, behaviour if you GET Messages with the parameter before=0.
It'll get everything except the most recent message, ordered newest to oldest.
In testing, I was using limit=100, but limit=2, and other values produces the same result.
Steps to Reproduce
GET /channels/CHANNEL_ID/messages?limit=100&after=0
Parse JSON
Expected Behavior
Empty JSON Array
Current Behavior
Sorted JSON Array of Newest to Oldest, l...
Description
Pretty much the title. It would be very useful to be able to automate reporting of "bad" content. I didn't obviously see a request for this, but searching for "report" + "endpoint" turns up... lots of unrelated stuff.
Why This is Needed
In the Discord Bots server, we've been dealing with transphobic / otherwise-bigoted raids for the last few weeks. While raids are raids and all that, it's frustrating to consistently have spec...
[discord/discord-api-docs] Issue opened: #3040 Threads archival notification reset permissions error
Description
Threads were enabled on a official-run Discord moderator-only server.
Steps to Reproduce
Change thread notification settings
Set the thread to auto-archive
Now the thread notification setting reset after it archives itself
Expected Behavior
Thread should not reset notification settings after archival.
Current Behavior
Thread notification settings reset after archival.
Screenshots/Videos
Server Id for debugging purposes: 667560445...
i'm screwed. this shouldn't have been reported here. i mis-read an announcement posted in the server.
Description
Having a slash command with "default_permission": false with an permission overwrite for the @everyone role is displayed as greyed out (disabled) even though the command is (and should be) usable.
Steps to Reproduce
- Create an slash command with
"default_permission": false - Add an permission overwrite for the command to allow it for the
@everyonerole:{id: guild.id, type: 1, permission: true}
Expected Behavior
The command is displayed...
Description
I was just sharding my bot, i was running my bot many times, because the bot WS was too high after sharding, anyways, i get an error saying 429 hit on route /gateway/bot, and it is spamming my terminal. I tried closing the bot and running it again, but i still get that error.
Expected Behavior
I expect the bot to be ready, instead of giving all those errors
Current Behavior
It just spams my terminal with the same error
Screenshots/Videos
...
This is not a bug, error code 429 indicates a ratelimit; your bot tried to connect to the Discord gateway more than a thousand times in a single day which is the limit, the ratelimit lasts for an entire day.
This is not a bug, error code
429indicates a ratelimit; your bot tried to connect to the Discord gateway more than a thousand times in a single day which is the limit, the ratelimit lasts for an entire day.
This is not an accurate response as to why they are hitting the 429 ratelimit. Gateway identify limits are separate from REST ratelimits.
With that aside, this is a discord.js "issue" that one may encounter when spawning too many shards too fast (since the ratelimit for t...
Both of the height and width properties of the attachment object's values are not nullable since they're only present if the attachment is an image but they're marked as nullable (?integer).
The problem here is the use of repl.it. Free hosts like this are not sufficient for bots because their shared IP addresses are commonly blocked/ratelimited.
This PR adds a link to Remora.Discord, a low-to-medium level C# library. The library comes with full API coverage (excluding voice), support for the latest features (v9 API, slash commands, buttons, etc), and an extensively tested codebase. Generally, the library aims to (as far as is reasonable and feasible) map 1:1 with the Discord API, and to only perform minimal abstractions or coercions.
Rate limits are transparently handled via a [Polly policy](https://github.com/Nihlus/Remora.Discor...
The various message-creating or message-editing endpoints can now, with the introduction of message components in #3007, take an array of components to add or modify the components of the message.
This PR adds documentation for these new parameters. Personally, I've only used and verified the Create Message and Edit Message endpoints, but as I understand it from others, the parameters function the same for webhooks.
This only applies to Official Discord Applications, like Poker Night or Youtube Together
| components | array of [message component](#DOCS_INTERACTIONS_MESSAGE_COMPONENTS/component-object) objects | the components to include with the message | false |
nitpick but add objects to table type
This PR makes an attempt at making "Message Components" and "Slash Commands" more consistent with the rest of the documentation.
(also rip https://github.com/discord/discord-api-docs/issues/2314)
Description
The PATCH endpoints for webhooks and messages both support an attachments list to remove attachments from the message. This seems to be unsupported by the /callback endpoint.
Why This is Needed
API consistency.
Alternatives Considered
Using the webhook endpoint and a deferred edit. This should not be necessary.
Additional Details
N/A
bro I am amazed at how long and how old this thread is and no one at discords dev team added this feature lmao
imo it should stay "interaction object", not "interaction request object"
Note: This doesn't merge conflict with https://github.com/discord/discord-api-docs/pull/3027 (at least I hope it doesn't)
This adds a new discord client option to the community resources.
It aims to please the reactive / functional programming crowd.
It also implements all the latest API features, such as slash commands and message components.
It uses https://github.com/tim-smart/discord-api-docs-parser to generate the REST endpoints and type information.
It is quite new, so I totally understand if you don't want to include this project :)
this is in private beta and there are a lot of other parts that should be documented; there are already private docs and I assume they'll add them to the docs site when they release (hopefully leaving the pr open for review for a while next time)
this is in private beta and there are a lot of other parts that should be documented; there are already private docs and I assume they'll add them to the docs site when they release (hopefully leaving the pr open for review for a while next time)
i am still adding to this pr, documenting all the things i think are necessary
I believe we have official documentation coming for this when we actually ship it. As such I'm going to close this PR. Appreciate the effort - and we welcome you to comment on and help improve the official documentation when available.
Everyone unsubscribe from this thread bc these geniuses don't understand what "closed" means and will continue to necro the issue. Get a job at Discord and fix it yourself if it bothers you THIS much.
source: #api-questions message
Signed-off-by: Cassandra McCarthy
Description
A slash command with "default_permission": false and no user permission overwrites will display as greyed out but still work in DMs. This is a different behavior to using the same command on a guild without permission overwrites where the interaction will fail and never be send to the application. This can break some applications which don't expect to receive slash command interactions from DMs when "default_permission": false is set.
You can also set a `default_p...
Description
The GET Reactions (GET/channels/{channel.id}/messages/{message.id}/reactions/{emoji}) endpoint includes the user ID given to it if it is one of the users that has reacted to it.
This breaks discordrb's current Pagination behaviour since it assumes the next call will only include IDs strictly greater than it in the response, use the last ID, and continue, so it once it gets to the last entry, it ends up in a loop of making identical requests.
Note this was not the case...
Bruh. Because I didn't see the asset uploaded, I kept uploading the same thing until suddenly now I have three of the same asset. When I tried to remove the asset, it gave me
Could not access 'message' of undefined
And is there any possibility of being able to disable features from the new slate editor, to essentially get it back to (or close to) how the legacy editor worked, as I previously suggested?
This would be really nice to have, I hate the emoji and mention previews.
d327642 Add docs for command permission limit (#3033) - MinnDevelopment
360dc59 fix: minimum channel length is one (#3026) - itohatweb
81aa2a0 Fix Guild NSFW level table (#3021) - FasterSpeeding
6a77fec Add documentation for the components paramete... - Nihlus

these are the same picture
