#github-notifications

1 messages · Page 17 of 1

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

It looks like this is more complicated than I thought initially. I just tested on the official Discord Developers guild and the permissions requiring MFA show for half of the moderators there, while they are missing for the other half. So it's neither about the guild requiring MFA nor just about it being a user-installed app.

chilly siloBOT
chilly siloBOT
#

I am building a website that uses the Discord OAuth API to allow users to log in with Discord. My users expect that if they log in with Discord, they should be able to connect with each other on Discord as well. Essentially, they are asking me to build a button on their profile that says “DM me on Discord”. If a user who is logged in with Discord views the profile of another user who is logged in with Discord, they should see this button, and clicking on it should redirect the current user to...

chilly siloBOT
#

Update on the ongoing 404 issue

I have done all testing and benchmarking to rule out a local I/O bottleneck or late response at this point. Here is what my current findings have gotten me:

  • Response Latency: My bot consistently responsds to the initial POST request within 10-200ms of the interaction being created by Discord (confirmed from the timestamp provided in the JSON data from Discord's POST request
  • Followup Delay: I have tested adding intentional delays of 0.5s, 1s and 2...
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Currently, discord seems to only process a single activity field, even if one of those fields is a custom status while the other is for rich presence, despite that user accounts do support both the user's current status and in the pop out you can see their current activity via rich presence, but because discord doesn't process custom status's and rich presence, bots cannot do this.

Despite not being able to do so, you can still send the gateway an array of activities, it will just silently...

#

you can use the endpoint below with OAuth2 applications.entitlements scope to check if someone who authorized your app actually has access to the bot, like if they're the owner. I'm using this method in a live app right now, so if anyone's curious you can check out the source code

https://discord.com/api/v10/applications/{botId}/entitlements
https://github.com/discordplace/discord.place/blob/main/server/src/utils/bots/isUserBotOwner.js

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Hello Discord API Team,

I wanted to suggest an update to the Apply-to-Join system. Right now, when someone applies to join a server, they don’t show up as a guild member until an admin manually approves them. Because of that, bots can’t fetch the user, can’t receive a member add event, and can’t interact with their application at all. This makes it impossible for bots to help with screening or automating any part of the approval process.

It would be really helpful if bots had a wa...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

Editing a Container's spoiler property in any direction does nothing on the message.

Steps to Reproduce

Create a CV2 like so:

[
  {
    type: 17,
    spoiler: true,
    components: [ [Object] ]
  }
]

Edit the message to be:

[
  {
    type: 17,
    spoiler: false, // <--- flipped
    components: [ [Object] ]
  }
]

Expected Behavior

The container should toggle spoilers on/off.

Current Behavior

Nothing happens.

Screenshots/Vide...

#

Description

If you create a CV2 that has e.g. a container with a media gallery, those images are never indexed into the Media tab that is visible on Mobile. This tab currently indexes media that come from Embeds and of course normal posts, so it should probably also index media from CV2s.

Steps to Reproduce

Create a CV2 with a container that has a media gallery with N images. Open the channel on mobile and navigate to Media. Notice the images never appear here.

Expected Behavi...

chilly siloBOT
#

🎯 Feature Request Summary

Add user-configurable modes to Discord overlay allowing it to work system-wide, not just in games.

📊 Problem Statement

Currently, Discord overlay only works in detected games, limiting usefulness for:

  • Remote workers during video calls
  • Online educators and students
  • Streamers using multiple applications
  • Content creators collaborating

Community Impact: 1,000+ upvotes on feedback portal

💡 Proposed Solution

Add overlay modes in s...

chilly siloBOT
#

works for me, tested: spoiler > no spoiler > spoiler
make sure you have your client configured to not auto-reveal spoilers

<img width="793" height="307" alt="Image" src="https://github.com/user-attachments/assets/50403ba0-af9f-4065-a8d3-041c004c5671" />

POST https://discord.com/api/v10/channels/:id/messages

{
  "flags": 32768,
  "components": [
    {
      "type": 17,
      "spoiler": true,
      "components": [
        {
          "type": 10,
          "content": "meow"
       ...
chilly siloBOT
#

Random idea I had: what if Discord’s branding colours were documented at Community Resources, so we could use them in our apps to match the overall theme of Discord.

Like https://discord.com/branding but then all the colours that we see on Discord with a disclaimer that they are subject to change and may not be updated here for years.

Context is the Colour class in libraries like Pycord. I don't know if any non-dpy fork has it.

Or maybe there should be a styling guide somewhere...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

These scopes are only currently available for new integrations via our Social SDK offering. Learn more at https://discord.com/developers/social-sdk

The scopes you can use with the Social SDK are not an appropriate solution. The closest scope developers can use for updating user presence is sdk.social_layer_presence, but this scope also grants access to modifying the user's friend list and other unnecessary features. Pointing developers to use that when all they want to do is update user ...

chilly siloBOT
#

Problem Statement:
Since the implementation of CDN Authentication Enforcement, avatar URLs retrieved via the API are ephemeral. This forces developers to re-fetch the User object frequently to obtain fresh HMAC signatures (ex, is, hm parameters), even if the avatar hash itself hasn't changed. This increases API overhead for simple display use-cases (e.g., portfolio sites, leaderboards, and third-party integrations).

Proposed Solution:
Introduce a persistent redirect endpoint tha...

#

Problem Statement:
Since the implementation of CDN Authentication Enforcement, avatar URLs retrieved via the API are ephemeral. This forces developers to re-fetch the User object frequently to obtain fresh HMAC signatures (ex, is, hm parameters), even if the avatar hash itself hasn't changed. This increases API overhead for simple display use-cases (e.g., portfolio sites, leaderboards, and third-party integrations).

Proposed Solution:
Introduce a persistent redirect endpoint tha...

#

I appreciate the correction regarding signatures only applying to attachments.
However, the value of a persistent {user_id} endpoint remains high for "low-logic" integrations (e.g., static READMEs, markdown files, or no-code tools) where implementing a websocket listener for USER_UPDATE or maintaining a database of hashes is over-engineered.
Regarding the caching concern: a 307 Temporary Redirect with a short max-age would allow the edge to handle the hash-lookup while letting the browser cac...

#

I appreciate the correction regarding signatures only applying to attachments.
However, the value of a persistent {user_id} endpoint remains high for "low-logic" integrations (e.g., static READMEs, markdown files, or no-code tools) where implementing a websocket listener for USER_UPDATE or maintaining a database of hashes is over-engineered.
Regarding the caching concern: a 307 Temporary Redirect with a short max-age would allow the edge to handle the hash-lookup while letting the browser cac...

#

Problem Statement:
Since the implementation of CDN Authentication Enforcement, avatar URLs retrieved via the API are ephemeral. This forces developers to re-fetch the User object frequently to obtain fresh HMAC signatures (ex, is, hm parameters), even if the avatar hash itself hasn't changed. This increases API overhead for simple display use-cases (e.g., portfolio sites, leaderboards, and third-party integrations).

Proposed Solution:
Introduce a persistent redirect endpoint tha...

#

I appreciate the correction regarding signatures only applying to attachments.
However, the value of a persistent {user_id} endpoint remains high for "low-logic" integrations (e.g., static READMEs, markdown files, or no-code tools) where implementing a websocket listener for USER_UPDATE or maintaining a database of hashes is over-engineered.
Regarding the caching concern: a 307 Temporary Redirect with a short max-age would allow the edge to handle the hash-lookup while letting the browser cac...

#

Problem Statement:
Since the implementation of CDN Authentication Enforcement, avatar URLs retrieved via the API are ephemeral. This forces developers to re-fetch the User object frequently to obtain fresh HMAC signatures (ex, is, hm parameters), even if the avatar hash itself hasn't changed. This increases API overhead for simple display use-cases (e.g., portfolio sites, leaderboards, and third-party integrations).

Proposed Solution:
Introduce a persistent redirect endpoint tha...

chilly siloBOT
chilly siloBOT
#

Description

A slash command is shown to users in DMs even when the app is not UserInstalled.
The user can see and click the command, but it cannot work and returns “Unknown Integration”.
This feels broken and confusing from a user perspective.

Steps to Reproduce

  1. Create an app with a slash command
  2. Enable ContextType.BotDM for the command
  3. Do NOT enable or require UserInstall
  4. Do NOT install the app as a user
  5. Open a DM and type /
  6. The command appears
  7. Click the c...
chilly siloBOT
chilly siloBOT
#

@vakiliner: I would like to ask a few clarifying questions: Are there any shared servers between the app and you? After restarting Discord, was the slash command still visible?

Yes, there are shared servers between me and the app.
After restarting Discord, the slash command is still visible in DMs and still fails the same way.

If I don't have any mutual server with the app, there is no commands in short (since app is not user installed so—for now).

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Hi team,

With the advent of the Discord Social SDK, developers can now update user presence through the Headless Session API by requesting the sdk.social_layer_presence scope. While this scope is useful for applications fully utilizing the Social SDK, it grants far too much privilege to applications that only want to update presence.

Currently, sdk.social_layer_presence is an umbrella scope that grants several permissions alongside presence updates, including:

  • Connecting to the...
chilly siloBOT
#

Description

When the API is queried by Discord in order to perform game detection, e.g. for a player's "Playing" status, and the game running is the 2001 title "Oni" from Bungie/Take-Two Interactive, it is being misreported as a 2023 game called "ONI: Road to be the Mightiest Oni". Looking at the API response manually, it seems that the two games were accidentally mashed together into a single entry, probably because they share the same executable name.

[Listing 2025.txt](https://githu...

chilly siloBOT
#

Description

When selecting the bot scope, you can select the integration type, although it should be obvious that only Guild Install is available

Steps to Reproduce

  1. Go to https://canary.discord.com/developers/applications/${APPLICATION_ID}/oauth2
  2. In the OAuth2 URL Generator, select scope bot
  3. Select integration type User Install

Expected Behavior

Either the integration type selection will not be shown, or the integration type will not be clickable and **...

chilly siloBOT
#

Description

The documentation for this endpoint lists the bio field as nullable: https://discord.com/developers/docs/resources/guild#modify-current-member - but when null is provided, the API complains that the bio field is required. Avatar and banner both still accept null.

Steps to Reproduce

  1. Attempt to reset your server bio:
curl --request PATCH \
  --url https://discord.com/api/v10/guilds/{id}/members/@me \
  --header 'Authorization: Bot {token}' \
  --header 'Conte...
chilly siloBOT
chilly siloBOT
#
  1. i was able to reproduce this and a fix has been merged down, which will be included in the next ios & android releases
  2. as mentioned above issue no. 2 is a known and expected behavior, and the recommendation is to not rely on this behavior for your webhook messages
  3. this is also intentional behavior, we intentionally make the default font size inside of containers slightly smaller than in regular messages but we don't change the header sizes. that's why the triple header (16px in and o...
chilly siloBOT
#

i was able to re-create the issue of GIFs being corrupted when uploading. i've released a fix which is live now on production!

for those of you having issues with animated WebP files, as far as i can tell this is expected and intentional behavior. if you would like to see support for animated WebP files in bot avatars and banners please open a separate feature request issue. thx!

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

This feature has a few interesting things to note:

  • Updating a pre-exisiting exception fires a GUILD_SCHEDULED_EVENT_EXCEPTION_CREATE instead of an update.

  • Removing the recurrence_rule for a scheduled event that already has exceptions doesn't remove any of the existing exceptions.

  • There is a seemingly unused GUILD_SCHEDULED_EVENT_EXCEPTIONS_DELETE event that exists. I tried to see when it would fire, but even after deleting the recurrence_rule, I still couldn't get it to...

chilly siloBOT
#

The Discord API spec and libraries such as Discord.Net define a PrimaryGuild model for users, including fields like guild_id, identity_enabled, and tag, which are used by the Discord client to display server identity tags.

However, this field does not appear in Gateway payloads (USER_UPDATE, GUILD_MEMBER_UPDATE), meaning bots cannot detect when a user selects or removes a server’s tag.

Is this omission intentional or is there an upcoming plan to expose primary_guild to bots?

Clarific...

chilly siloBOT
chilly siloBOT
#

Adding a smart timestamp style to message formatting that mirrors embed behavior would solve this neatly of course.

If the existing timestamp syntax <t:unix:style> had a new style (for example, S) that renders "today" when the timesatmp falls within the viewer's current calendar day, "yesterday" for the previous day, and otherwise shows a localized short date (same as d), using the viewer's timezone. I think this can be done.

chilly siloBOT
#

Description

Hey ! So basically, it might be intentional but while using string select menus, I encountered an emoji error on the name (Invalid Emoji) and the error code for that was "BUTTON_COMPONENT_INVALID_EMOJI", it doesn't really make sense because it is not a button but well, it might me good to change the global name COMPONENT_INVALID_EMOJI or just add different codes for different component types.

Steps to Reproduce

Send a request for an [Interaction Response](https://discor...

chilly siloBOT
#

Description

When sending a message which contains a media gallery component, you are able to attach external images via URL.

However, the first time this is done, the image at that URL is proxied by Discord and cached in case it is reused in future.

By the time the message is received in the channel it has been sent to, this process may not have completed.

For embeds, the image simply pops up when ready. II reused, the image appears instantly:

https://github.com/user-attachments/ass...

chilly siloBOT
#

Thanks for fixing the corrupted Gifs, However now when uploading through the panel something happens where it sets each frame delay to a default or as 1ms as I've discovered causing a very choppy animation for any Gif uploaded through the Developer Panel
Image

Discord Uploaded
<img width="1198" height="373" alt="Image" src="https://github.com/user-attachments/assets/72be6c3b-4c10-4bda-8abc-d408afea9c4d" />

...

chilly siloBOT
chilly siloBOT
#

Description

The ratelimiting documentation states:

Per-route rate limits exist for many individual endpoints, and may include the HTTP method (GET, POST, PUT, or DELETE). In some cases, per-route limits will be shared across a set of similar endpoints, indicated in the X-RateLimit-Bucket header. It's recommended to use this header as a unique identifier for a rate limit, which will allow you to group shared limits as you encounter them.

But in reality, endpoints with the same top-l...

chilly siloBOT
#

The MANAGE_GUILD permission currently bundles together read-only informational access with powerful server modification capabilities. This creates unnecessary barriers for bot developers who only need to read data (like invite tracking) but must request broad permissions that alarm server owners.

The MANAGE_GUILD permission currently includes:

Viewing server name and settings
Modifying server name and region
Viewing all invites (including creator information)
Adding bots/apps t...

#

This is something I've wanted for years, just because of how powerful MANAGE_GUILD currently is.

Though in my mind, I had the following split as an idea (slightly different from OP's split):

  • MANAGE_GUILD - "Allows members to change details about this server, including its name, icon, and regions for voice and stage channels. Also allows editing community settings if this server is community enabled."
  • MANAGE_INTEGRATIONS - "*Allows members to add or remove apps and third-par...
chilly siloBOT
#

Bumps @actions/core from 1.10.1 to 2.0.2.

Changelog
Sourced from @​actions/core's changelog.

@​actions/core Releases
2.0.1

Bump @​actions/exec from 1.1.1 to 2.0.0 #2199

2.0.0

Add support for Node 24 #2110
Bump @​actions/http-client from 2.0.1 to 3.0.0

1.11.1

Fix uses of crypto.randomUUID on Node 18 and earlier #1842

1.11.0

Add platform info utilities #1551
Remove dependency on uuid package #1824

Commits

See full diff ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

Text input components do not allow correction of spelling errors

Steps to Reproduce

  1. Respond to interaction with a text input component
  2. Make spelling mistakes when typing (e. g. helo world)
  3. Select the suggested correction

Expected Behavior

The text will be replaced

Current Behavior

Nothing is happening

Screenshots/Videos

No response

Client and System Information

canary 485281 (a60ed72) Host 1.0.802 x64 (73866) Build Override: N/A Window...

chilly siloBOT
#

Description

Noticed when looking at intents to answer a question. The note is no longer on a new line and there is no more hyperlink.

Steps to Reproduce

Go to the application -> bot and look at intents

Expected Behavior

Should render as separate lines with a hyperlink

Current Behavior

Does not render correctly

Screenshots/Videos

No response

Client and System Information

Chrome, MacOS:
Version 143.0.7499.170 (Official Build) (arm64)

chilly siloBOT
chilly siloBOT
#

Description

The ratelimiting documentation currently states for top-level resources:

During calculation, per-route rate limits often account for top-level resources within the path using an identifier—for example, guild_id when calling /guilds/{guild.id}/channels. Top-level resources are currently limited to channels (channel_id), guilds (guild_id), and webhooks (webhook_id or webhook_id + webhook_token). This me...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

cool! That's helpful for LLM agents. Some libs/API knowledge is hidden in certain lib/product/techonology discords. Now we can pipe not only docs, but community knoweledge there more easily

Just need a cli wrapper or something. Hope it's possible..

You can't use any Discord data to train AI's, It's against the ToS, Shapes Inc got slapped for that and other issues, so if you want to get banned then gl.

#

cool! That's helpful for LLM agents. Some libs/API knowledge is hidden in certain lib/product/techonology discords. Now we can pipe not only docs, but community knoweledge there more easily

Just need a cli wrapper or something. Hope it's possible..

Very confused on why this was edited to completely change the first paragraph, but as others have said, this is explicitly against terms of service and would likely be a massive violation of user privacy. Discussing projects in a Discord se...

chilly siloBOT
#

Description

I have recently created a V2 component having a lot of buttons, images and text on it, every button actually just deletes the v2 component and edit it with newer one with updated content, that's the functionality, and the CPU and memory consumption just increasing continuously by the bot, until unless it reaches 100% and crashes my VPS at the end, this continuos increase in usage is not much fast, but if i let the bot online, in around 3 days it reaches the max and my server ...

chilly siloBOT
#
H1D

I've edited my post because it seemed like people misunderstood my point. To clarify, I have no intention of training LLMs on user data or anything...

To provide some context: there are tools like Context7 that connect documentation to LLM agents so that the code or answers they produce are more accurate. Even a simple tool like web search reduces hallucinations.

The problem I often encounter is that for certain technologies, there aren't enough documentation/articles on the web. Much o...

chilly siloBOT
chilly siloBOT
#

It is unfortunate that our rate limits are so confusing, and its possible this will change one day, but for now this is working as intended. The quoted docs quite directly say that "In some cases, per-route limits will be shared across a set of similar endpoints", and thats precisely whats happening here.

You say:

Both endpoints should return a different X-RateLimit-Bucket hash, as they are different ratelimits.

Except they are not different rate limits, they are shared limits.

but i...

#

If I understand your issue correctly, the problem youre stating is not that the API is working incorrectly - after all the quoted block from the API docs explicitly states that routes often and may be bucketed like this, not that theyre guaranteed to - but rather that its difficult in this system to predict what a rate limit bucket will be for a request. We understand that this is frustrating, but it is working as intended. Let me know if Ive misunderstood your issue.

Also, please dont...

chilly siloBOT
#
  • Add link to App Verification page (/select/verification-onboarding)
  • Add links to Discovery Status (/select/discovery/status) and Discovery Settings (/select/discovery/settings)
  • Add link to Activities -> URL Mappings (/select/embedded/url-mappings)
  • Add link to Activities settings (/select/embedded/settings)
  • Remove backtick formatting from all linked portal section names for consistency

All Developer Portal section references now use the application selector deep-link format fo...

chilly siloBOT
#

Hi @yonilerner, thank you for taking the time to reply

If I understand your issue correctly, the problem youre stating is not that the API is working incorrectly - after all the quoted block from the API docs explicitly states that routes often and may be bucketed like this, not that theyre guaranteed to - but rather that its difficult in this system to predict what a rate limit bucket will be for a request.

Yes, that entire paragraph is worded in an purposely vague way for to give leeway...

#

Hi @yonilerner , its quite likely I didn't explain myself correctly in the original post, so I'll give you some example and traces to hopefully illustrate the problem better:

If you make two requests, one after another to POST /channels/1185617944248590507/messages and PATCH /channels/1185617944248590507/messages/<message_that_was_created_id>, they will get the same x-ratelimit-bucket header, but the internal bucket they hit is actually different, as can be seen by remaining being `l...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Going to close this as working as intended. You're not allowed to edit an archived thread. If you want to edit it, you need to un-archive it first. Appreciate the input, I don't see us changing this behavior anytime soon.

I just stumble across this. So why we can Lock a Thread through the Discord Visual Interface? It doesn't make sense to allow it that why and block it through the API. A bit stupid I guess.

chilly siloBOT
chilly siloBOT
#

Just go thit by this limitation.

The best workaround I can think of that doesn't require the GUILD_MEMBERS intent (which is required for the workaround that uses the list guild members endpoint):

  1. Create a new private thread
  2. Send a message to the private thread that pings the role (Perhaps use @silent at the start to avoid the notification sound)
  3. Use the [list thread members endpoint](/channels/[{cha...
chilly siloBOT
#

It would be great to have some sort of "middleware" for Discord to call before the bot being installed on a guild or user.

I imagine it like this:

User has Authorization Modal open and completes the flow.
Before the app is being added to the guild or user, the configured webhook endpoint gets called

If the Webhook responds with a 200 OK, then everything proceeds as usual. If it responds with 403 Forbidden and a json payload like `{ error: "You are banned from using the bot for viola...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

@foxfirecodes Thank you for this! Can confirm it's working now.

I was curious: Would it be possible as a developer to specify exclusions on which images to not index also? I have a bot that will show media from social media posts and the section avatar accessory feels unnecessary to index as it's often just a supplementary image and not the "main" focus of a post. For example, it can display the contents of a tweet which might have the user's profile pic (irrelevant) and the post's main medi...

chilly siloBOT
#

Description

The docs for emojis say there is a require_colons property: "whether this emoji must be wrapped in colons".

All the example emoji objects on the page have require_colons set to true, but the existence of the property implies that it might sometimes be false.

In what cases would an emoji have require_colons set to false, and how do you enter the emoji in those cases?

Steps to Reproduce

  1. Read the docs
  2. Enc...
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I'm closing this issue because this is currently working as intended for reasons mentioned above (autocomplete options still allow you to input any value and only converts to autocomplete values when an option is actually selected)

I do agree though that this can result in some situations that comes as a surprise to users, so I opened a task internally to think about this flow some more. We may be able to improve this for the more common case of a single autocomplete option, but once multi...

chilly siloBOT
#

Addresses critical developer friction around mobile authentication by creating a dedicated guide for iOS and Android platforms.

New Documentation:

  • Created "Account Linking on Mobile" development guide with setup instructions for Unity, Unreal Engine, and C++ standalone
  • Platform-specific configuration
  • Deep linking setup with custom URL schemes
  • PKCE documentation explaining why it's mandatory for ALL mobile apps using deep links, regardless of client type

Key Content:

  • Authe...
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I'm working on a bot that allows a server's members to post bounties for other members to complete. The descriptions for these bounties are user-written, and in the interest of not being a method of dodging moderation, my team is looking into making sure the bot's messages all comply with a housing server's AutoMod.

Fetching AutoMod rules and regexps works ok, but it feels a little ironic to be asking for ManageServer in order to fetch them for compliance (since that also lets us change th...

chilly siloBOT
#

Description

When sending a message which contains a media gallery component, it causes weird layout shift behavior if the image's width is too high.

I've tried experimenting with different image dimensions and I believe this only occurs if the image aspect ratio exceeds specifically 11:7.

I've attached a video showing an image of exactly 11:7 aspect ratio and an image which is 1px wider.

https://github.com/user-attachments/assets/aed09920-53b6-474c-8111-71df0ebe49ac

The former shows...

chilly siloBOT
chilly siloBOT
#

Description

Tapping an asset in a media component crashes Discord.

Steps to Reproduce

Example payload using @discordjs/core:

await api.channels.createMessage(CHANNEL_ID, {
	components: [
		{
			type: ComponentType.MediaGallery,
			items: [
				{
					media: {
						url: URL
					}
				}
			]
		}
	],
	flags: MessageFlags.IsComponentsV2,
});

Expected Behavior

Discord previews the image.

Current Behavior

Discord crashes.

Screenshots/Videos

https://...

chilly siloBOT
#

Description

Seemingly randomly when updating a message content with a button interaction update, after updating, it will return back to the previous version of the message after ~1 second.

It only seems to happen when a message has been updated multiple times, but due to the nature of it being seemingly random, I can't tell.

A video is attached of this happening, you can see that after clicking stand, it shows an end screen and a play again button. take note of the id shown in the foot...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

I have a few embeds with different length content and right now they are stacked vertical and it looks like someone piled up a stack of random mismatched bricks. it would look a lot better if they flowed and wrapped horizontally and/or i could set a minimum width.

I see in the resulting HTML the container has "grid-template-columns: repeat(auto-fill,minmax(100%,1fr))" which effectively a single column only. adding a "min embed width" option to override the 100% would allow wrapping, and a...

chilly siloBOT
#

Summary

Adds clarification for the min_values constraint when using string select menus inside label components with required: true.

Changes

Added a note to the select menu documentation stating:

If the select is inside a label component and required is omitted or true, the min_values have to be at least 1 or omitted.


Currently, the API rejects modals containing required select menus with min_values: 0, but this constraint is not documented. This creates confus...

chilly siloBOT
#

cc @GamingGeek (from DDevs Discord)

Problem

Users with "Allow direct messages from server members" disabled cannot be contacted by bots, even for critical use cases like moderation appeals or modmail systems. This creates a catch-22 situation:

  • A user is banned/muted and wants to appeal, but their DMs are closed
  • Appeal/modmail bots cannot initiate contact unless the user DMs the bot first (which they may not know to do)
  • The only alternative is requiring users to install the ...
#

you can use interactions in DMs already. or what do you mean?

You mentioned the following in your discussion,

Introduce an optional one-time DM token system tied to the interaction initiator. When a bot responds to an interaction with a special flag (e.g., with_dm_token: true), Discord would grant a temporary, single-use token that permits the bot to send exactly one DM to the user who triggered that interaction - even if the user has their DMs disabled.

but surely all that's neede...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

https://discord.com/developers/docs/components/reference#media-gallery-media-gallery-item-structure

Media Gallery Item is a nullable field, but it is not documented as such. It is only documented that it may be omitted, but it can also be null

Steps to Reproduce

  1. Send a message (components v2) with a media gallery item (without the media description omitted) and a string select
  2. Edit the string select and observe the message sent in the payload
  3. Notice that the...
chilly siloBOT
chilly siloBOT
#

Description

I am attempting to update the embed description of a specific message. Discord returns a 200 OK response, but the embed description is not actually updated. This issue occurs consistently with this particular message: edits are acknowledged successfully but do not take effect.

Steps to Reproduce

Perform this request

curl --location --request PATCH 'https://discord.com/api/v10/channels/1467596799115133051/messages/1467652483185905808' \
--header 'Content-Type: app...
chilly siloBOT
chilly siloBOT
#

Bumps @actions/core from 1.10.1 to 3.0.0.

Changelog
Sourced from @​actions/core's changelog.

3.0.0

Breaking change: Package is now ESM-only

CommonJS consumers must use dynamic import() instead of require()

2.0.3

Bump @actions/http-client to 3.0.2

2.0.1

Bump @​actions/exec from 1.1.1 to 2.0.0 #2199

2.0.0

Add support for Node 24 #2110
Bump @​actions/http-client from 2.0.1 to 3.0.0

1.11.1

Fix uses of crypto.randomUUID on...

chilly siloBOT
#

It's in the title. The DEFERRED_UPDATE_MESSAGE acknowledgement should display a loading state, similar to what DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE does.

Imagine you have an image gallery, with a string-select underneath. The problem is that the gallery needs to perform HTTP requests to third-party APIs in order to switch images, and those APIs tend to be a bit slow.

Since there's no guarantee on how fast the APIs are (often, they do end up exceeding 3 seconds), I send a `DEFERRED_U...

chilly siloBOT
#

Description

In rare cases, with server role subscriptions, the is_renewal property of a Role Subscription Data Object does not produce reliable data signifying whether subscription was a renewal.

Example culprit Message ID: 1468274751947538442
In Guild ID: 831083226319552542
In Channel ID: 831083227644428318

Steps to Reproduce

N/A

Expected Behavior

is_renewal should equal false.

C...

chilly siloBOT
#

I can see why this would be confusing! I think the system is working as intended here - there's some subtlety in the semantics of is_renewal. It reflects renewal of a subscription tier (a specific SKU). This field will be false for a tier upgrade, which is recorded as a new subscription in our system - with proration for the previous tier.

total_months_subscribed counts cumulative time across all historical subscriptions for your server (including all tiers). This also includes nonconse...

chilly siloBOT
#

Thank you for the detailed report! I've spent a little time trying to reproduce your issue, but using my own test channel and message since I don't have access to yours. So far, I have not seen the symptom you described. Can you confirm the following?

  • Do you only see the described issue with this specific message, or has this happened with different messages and this particular one happens to repro consistently for you?
  • Have you observed anything else unusual about this particular mes...
chilly siloBOT
#

Thank you for getting back

  1. Yes, this happens specifically for this message alone, and I am able to reproduce it consistently. I just tested it again and am still able to reproduce it. For context, this server is one of the servers my bot is in, and I discovered this after one of the admins from that server complained that the bot was not working. I did get their permission before attempting to use the bot token to make manual requests.

  2. None that I can see. In fact, I tested it by crea...

chilly siloBOT
#

I did a little more digging, and it looks like your bot doesn't have the EMBED_LINKS permission in the target channel. This causes the behavior you're describing, where our API silently ignores the embed part of the payload, while accepting the rest of the update. It seems likely that this permission was revoked at some point, but I'm not sure why. Please work with the server admin to check your bot's permissions, inclu...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

<img width="1153" height="206" alt="Screenshot 2026-02-05 at 10 42 07 AM" src="https://github.com/user-attachments/assets/502aa174-f37a-4f06-99eb-a1a902bdfe59" />
<img width="1125" height="99" alt="Screenshot 2026-02-05 at 10 41 17 AM" src="https://github.com/user-attachments/assets/1bc60441-8d4f-4303-bd2a-383ac29fa3a6" />
<img width="1105" height="246" alt="Screenshot 2026-02-05 at 10 40 58 AM" src="https://github.com/user-attachments/assets/d36c35e4-b41c-45c4-b6b4-7d59da2dd7d0" />
<img w...

#

Description

You can specify roles for a guest invites.
Although these roles aren't gives to the user when joining a voice channel, it's still odd that the field isn't ignored.

Steps to Reproduce

Create a guest invite: POST /channels/{channel.id}/invites

{
    "flags": 1,
    "role_ids": ["1234567890123456789"]
}

Expected Behavior

Error or ignore this field

Current Behavior

Created:

{
    "flags": 1,
    "channel": {
        "id": "123456789012345...
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

The temporary=true field makes membership temporary if they haven't been assigned a role.
But by adding invite-roles, temporary membership stops working.

Steps to Reproduce

  1. Create an invite: POST /channels/{channel.id}/invites
{
  "temporary": true,
  "role_ids": ["1234567890123456789"]
}
  1. Join the guild using the created invite.
  2. Go offline.

Expected Behavior

  1. Error: temporary is not compatible with role_ids
    Or:
  2. Kicked from the g...
chilly siloBOT
chilly siloBOT
#

For some cases, especially for Usage with Screenshots, the Modal File Upload component should be supporting clipboard pasting.
It is supported in File Upload Slash command options - and could function exactly the same: Focus the Modal File Component -> paste from clipboard.

Currently this limitation stops from migrating some slash command upload commands to a modal, which is the more logical and easy usage in most use cases.

chilly siloBOT
#

Bumps eslint from 9.2.0 to 10.0.0.

Release notes
Sourced from eslint's releases.

v10.0.0
Breaking Changes

f9e54f4 feat!: estimate rule-tester failure location (#20420) (ST-DDT)
a176319 feat!: replace chalk with styleText and add color to ResultsMeta (#20227) (루밀LuMir)
c7046e6 feat!: enable JSX reference tracking (#20152) (Pixel998)
fa31a60 feat!: add name to configs (#20015) (Kirk Waiblinger)
3383e7e fix!: remove deprecated SourceCode methods (#20137) (P...

#

Bumps @eslint/js from 9.2.0 to 10.0.1.

Release notes
Sourced from @​eslint/js's releases.

v10.0.0
Breaking Changes

f9e54f4 feat!: estimate rule-tester failure location (#20420) (ST-DDT)
a176319 feat!: replace chalk with styleText and add color to ResultsMeta (#20227) (루밀LuMir)
c7046e6 feat!: enable JSX reference tracking (#20152) (Pixel998)
fa31a60 feat!: add name to configs (#20015) (Kirk Waiblinger)
3383e7e fix!: remove deprecated...

chilly siloBOT
#

We're introducing three new modal components: Radio Groups, Checkbox Groups, and Checkboxes. These components expand the ways users can interact with your app through modals, enabling single-choice selections, multi-select options, and simple yes/no toggles.

The New Components

  • Radio Group: A single-selection component for choosing exactly one option from a list. Supports the required field to allow optional selections.
  • Checkbox Group: A multi-selection co...
#

I believe that's only true for the radio group. For checkbox group the response is an empty array from my testing. For example sending:

component: {
    type: 22, // ComponentType.CHECKBOX_GROUP
    custom_id: "event_checkbox",
    min_values: 0,
    required: false,
    options: [
        {value: "march-4", label: "March 4th"},
        {value: "march-5", label: "March 5th"},
        {value: "march-7", label: "March 7th", description: "I know this is a Saturday and is ...
chilly siloBOT
chilly siloBOT
#

v2_final.psd, lets try this again

Next Generation Docs Project

We're excited to announce the launch of our Next Gen Docs project! This initiative aims to improve the way developers interact with Discord's developer documentation, making it more accessible, comprehensive, and user-friendly.

Our Goal

The Discord API has evolved far beyond its origins as a platform for bots. Today, we're a comprehensive developer platform supporting:

  • Discord Apps and Bots - The...
#

Bumps mdast-util-to-hast from 13.1.0 to 13.2.1.

Release notes
Sourced from mdast-util-to-hast's releases.

13.2.1
Fix

ab3a795 Fix support for spaces in class names

Types

efb5312 Refactor to use @imports
a5bc210 Add declaration maps

Full Changelog: https://github.com/syntax-tree/mdast-util-to-hast/compare/13.2.0...13.2.1
13.2.0
Types

24f4576 Add type for data.meta on elements to hast

Full Changelog: https://github.com/syntax-tree/mdas...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Hello Discord API Team,

I would like to ask whether there is any supported pathway for programmatic server creation via OAuth for verified applications.

Currently, bots cannot create servers and the server.create scope is not available.

There are legitimate use cases where an external application helps a user configure a community before deployment, and a smoother server creation flow would reduce onboarding friction.

Is there:

  • A verified app pathway?
  • A partner-only feat...
chilly siloBOT
#

There's zero need to create the server programatically and it's not that hard for a user to create a barebones server for it to use themselves. As long as you provide them with an adequate invite link for your app (i.e. including any necessary permissions) then it can do exactly what it needs to in an existing server.

If your app is pointless without creating the server then it was always going to be pointless as there's never been a need for apps to own servers

#

Thanks for the insight — I agree that technically creating a barebones server manually isn’t difficult.

My goal isn’t to bypass that step for the sake of automation alone, but to reduce friction and create a seamless onboarding experience for non-technical users who may not be familiar with Discord’s structure, permissions, or configuration complexity.

The core value of the app is in generating and deploying a fully structured server (roles, permissions, categories, automations, etc.) i...

chilly siloBOT
#

Description

https://discord.com/developers/docs/topics/permissions#role-object-role-flags

Describes Role's colors property as non-nullable, but I just bumped into a decoding issue because it was null.

Steps to Reproduce

Can provide more info if needed, but only I can run the integration tests of my library since it required my test-bot's token.
This is the CI that failed, not sure if you can see the logs or not:
https://github.com/DiscordBM/DiscordBM/actions/runs/21912720746/j...

chilly siloBOT
#

So this is actually insane. Seems someone can just DOS an oauth flow and kill EVERYONE'S ability to use the discord oauth api.

Even if not on a shared IP. And I can't blanket rate limit the [...nextauth].ts endpoints because those get called from discord's server during the oauth flow (and then MY rate limiting breaks the login flow for EVERYONE)

Also seems like it is anathema to high level scaling.

Why oh why discord, with the IP rate limiting 😢

chilly siloBOT
chilly siloBOT
#

Appears to be GET /guilds/xxx/templates, the relevant output is on line 64 of the log. I see the same on my own test server, all the template roles have "colors":null. My template was created in April 2020 which I presume was before the colors field was invented, though that's probably not relevant since MahdiBM's one says it's from today.

[{"code":"JuZJyS4wwcyv","name":"Test", [...] ,"serialized_source_guild":{"name":"Polsyzone", [...] ,"roles":[{"id":0,"name":"@everyone","permissions":1041...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

"for us" reads a touch strange to me. I was like "for using the Discord client - I use it all the time".

I'm almost tempted to say remove the subheading (For use in the Discord Client: and For API integration:) - since you need all the prerequs -- especially, as you don't have two sections in this doc that these line up to.

The other option is to move the sub-prerequs into their relevant sections further down?

chilly siloBOT
chilly siloBOT
#

Hi,

"erkinalp" .. does not compute.

Sorry, no, I do not know anyone by that name or nickname.

Cheers,
su

čt 12. 2. 2026 v 1:13 odesílatel broman @.***> napsal:

erkinalp is that you


Reply to this email directly, view it on GitHub
https://github.com/discord/discord-api-docs/discussions/3234#discussioncomment-15775501,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAWPE62EEXXKI2OYVVODFDD4LPARTAVCNFSM6AAAAACEPWTU5KVHI2DSMVQWIX3LMV4...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

The documentation says serialized_source_guild is "partial guild". Partial guilds's roles elements are always a normal role object, not a partial role object, so this whole thing feels weird if you're not directly using the openapi files + an openapi generator.
Nicest thing would be for Discord to repair the colors there IMO. Not sure what other objects are also affected by possibly having nullable colors.

#

So for clarity, I'm trying to update the APIs of my library after like 1.5 years (almost done with it) so yeah I've forgotten some stuff ...
One of them is this comment, from 2 years ago:

<kbd> <img width="1078" height="266" alt="Image" src="https://github.com/user-attachments/assets/3666a581-9384-4e67-b3b0-fc7918dd5312" /> </kbd>

So ... at least I only need to change this Role type's properties, not the actual main Role's. Therefore this issue is not as bad I thought for the library an...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

SKU not found error occurs when attempting to purchase server products on clients, we've never had issues with this before it has been working fine for over a year until today we received reports of people being unable to purchase server products.

Steps to Reproduce

When a user presses on Purchase on any product in the server products tab, it gets stuck loading.
Example culprit products:
https://discord.com/channels/831083226319552542/shop/1213209385380089927
https://d...

chilly siloBOT
#

Description

This bug existed before the release, but it still hasn't been fixed.
Instead of the understandable error "options is a required field", the server returns 500 Internal Server Error

Steps to Reproduce

Respond MODAL to the interaction with data:

{
  "custom_id": "test",
  "title": "Test",
  "components": [{
    "type": 18,
    "label": "Checkbox Group",
    "component": {
      "type": 22,
      "custom_id": "checkboxgroup"
    }
  }]
}

Expected B...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

A quick update to bring docs more in line with our internal response models:

  • renames "Passthrough Message" to "SDK DM Message" for clarity
  • adds activity and application fields
  • removes deprecated channel_id and recipient_id fields
    • channel_id will continue to be serialized
    • I don't believe we've ever serialized recipient_id for webhook events -.-

Also as a general fyi - channel.recipients used to be inconsistent on whether it omitted the sender or not. It shou...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Hello everyone.
By this PR, I'm trying to propose DiscordBM as a "community library" to be added to the community resources in Discord docs.
Please let me know if there is a better place to do this.
Also I don't mind if this PR gets rejected. I just thought it's worth proposing since I see no Swift libraries in the list.

Why

  • DiscordBM is in Swift's Official SSWG (Server-Side Working Group)'s incubation program since 2023, which tries to ensure longevity of the projects. See...
chilly siloBOT
#

Thanks for the link @Soheab.

I understand that there is a "revamp" coming in sometime, and I also do realize that DiscordBM likely doesn't have "1000 active bots".

I'm still hoping for the possibility to hear something like this:
https://github.com/discord/discord-api-docs/pull/7157#issuecomment-2993096750
In the sense of "It is quite feature-complete and is practically the only discord library out there for C Swift.".

(DiscordBM is practically the only Swift library. The oth...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

If the title of changelog its large the box can hide text

Steps to Reproduce

Expected Behavior

The text its reduced or not hide another part of the site

Current Behavior

The title hide part of the site

Screenshots/Videos

Client and System Information

Chrome ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

The info icon for info-alerts (probably other alerts as well) are not properly centered where it's only one line of text.

Steps to Reproduce

Example: https://docs.discord.com/developers/events/webhook-events#subscribing-to-events

Expected Behavior

Centered icon (vertically)

Current Behavior

not centered icon (vertically)

Screenshots/Videos

Client and System Information

Brave, MacOS Tahoe 26.2

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Replace "NSFW" terminology with "age-restricted" in human-readable documentation to reflect Discord's granular content restriction model.

Changes:

  • SDK linked channels: Update table labels and code comments
  • Channel resource: Update field descriptions for nsfw field
  • Guild resource: Update nsfw_level to "age-restriction level"
  • Threads: Update section header and description

All API field names, anchor IDs, and enum values remain unchanged for backwards compatibility. Added suppo...

chilly siloBOT
chilly siloBOT
#

This is working as intended today.

  • Webhooks can add users to public threads.
  • Webhooks can add users to private threads that were created by the webhook.
  • Webhooks cannot add users to private threads that were not created by the webhook.

Conceptually, only someone who is already "in" the private thread is supposed to be able to invite another person in. Webhooks don't really have a "presence" in a thread (only its enclosing channel) so they break this model - that's why they have ...

#

Marks name and size as optional (?) in the File component documentation table.

Generated on selentic

Both fields are server-populated from the referenced attachment and cannot be provided by clients. The descriptions already say "This field is ignored and provided by the API as part of the response", but the field names were missing the ? suffix that similar server-populated fields on Unfurled Media Item use (proxy_url?, height?, width?, content_type?, attachment_id?).

Fi...

chilly siloBOT
chilly siloBOT
#

Description

interaction info is missing when you reply from a modal (without the command interaction) as a ephemeral message

Steps to Reproduce

what i did was use a command that opens a modal (without replying), when i submit the modal does it reply with a ephemeral message, the reply does not have interaction info / it just loads forever

Expected Behavior

It should show the interaction info as it does on non-ephemeral messages
In the case of the shown screenshot should it di...

chilly siloBOT
#
  • Webhooks can add users to private threads that were created by the webhook.

I can't imagine a scenario where a webhook would be capable of being the creator of a private thread. A webhook can create a public thread as a consequence of forum channels (and only in forum/media channels), but creating a private thread would require the ability to specify a channel type for the created thread, and private threads are not supported in forum/media channels.

In summary, there is no scenar...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Additionally (and this isn't an API issue but it is a major problem with the Membership Application feature)

  • Second/third/etc applications are not flagged, allowing prospective members to whack-a-mole different responses to try and game the application system.
  • "Interview" does not get flagged for other moderators reviewing applications, so it's very easy for one to approve while another is interviewing.
chilly siloBOT
#

Replaces the client-side chat moderation guide with a full server-side moderation workflow using the new moderation metadata REST endpoints.

Changes:

  • integrate-moderation.mdx: Rewrote the chat moderation section to cover the server-side flow — webhook event subscription, PUT endpoint examples for DM and lobby messages, moderation metadata field reference, C++ client callback handling, content edit re-moderation, and a full sequence diagram.
  • lobby.mdx: Added REST reference entry for t...
chilly siloBOT
#

Description

On February 14th, in embeds generated from a webhook message's link, the client displayed a thumbnail, instead of the actual video. However, a week later, I could not reproduce the issue on the client, but still could on the embed debugger.

Steps to Reproduce

The incorrect output can be seen in the embed debugger:

chilly siloBOT
#

Description

If you replace a selector with a another selector of same type triggered by a first selection, even if it is not the same custom_id, the value is transferred to the new selector.

Steps to Reproduce

  1. Create a code in the language of your choice that replace the custom_id of a role selector component with an interaction edit
  2. Use the first selector, see that the value isn't reset

Expected Behavior

A reset of selection because it's a different selector

Curre...

chilly siloBOT
#

Description

Whenever you run GET /channels/:ID/messages a few times, because you might want to get say the last (example) 10,000 messages, you end up hiting ratelimit, naturally. However the headers you are given are showing a value of either 999 or 1000 instead, and suddenly when you do hit the ratelimit, it then shows 0/5 remaing like it usually is doing. It does not gradually decrease in value and remains within the range of 999-1000 until the ratelimit hits.

Steps to Reproduce...

chilly siloBOT
#

Description

The bot stopped receiving certain events on all of its shard sessions. Restarting the shards fixed the problem.
This bug occurred twice:

  • February 16 (timestamp 1771310400)
  • February 22 (timestamp 1771761600)

The affected events detected are:

  • Interaction Create
  • Guild Create (Someone said, the bot appear offline on new guild with this incident)

This bug does not affect all bots, only certain ones for reasons that remain unknown.
My bot is hosted in USA

Steps to Re...

chilly siloBOT
chilly siloBOT
#

@afgiel. Hey. Any updates? This error is still blocking us from sending some replies to users — even messages about this error. Users just see silence and assume the bot is broken, not your API.

This has been open for almost a year now. If a fix isn't coming soon, can you at least provide a workaround? Some way to predict this error without actually hitting it — so we can fail gracefully and tell users something went wrong."

#

@DV8FromTheWorld @OoLunar Hey. Any updates? This error is still blocking us from sending some replies to users — even messages about this error. Users just see silence and assume the bot is broken, not your API.

This has been open for almost a year now. If a fix isn't coming soon, can you at least provide a workaround? Some way to predict this error without actually hitting it — so we can fail gracefully and tell users something went wrong.

chilly siloBOT
#

Same here. Stopped receiving the GUILD_CREATE event but received other events for the new guilds just fine. Restarting the shard solved the issue for me.

I've had issues with this for at least a year and just started investigating today to find that shards start to no longer receiving the GUILD_CREATE event randomly. Maybe this is just a part of the issue, but definitely one that needs fixing from Discord's side.

App ID: 678344927997853742

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Actually, I'm not sure this will show up in preview, since:
<img width="478" height="176" alt="image" src="https://github.com/user-attachments/assets/476a1c4f-7ad3-4347-b3c1-db75199cac04" />

This is what I see locally
<img width="1098" height="229" alt="image" src="https://github.com/user-attachments/assets/fec4fe31-07bf-4ee0-b8ff-3eda6a47e788" />

Not sure why I'm getting the copy dropdown in local dev, but not on a preview.

chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

When a modal includes a radio group component with a default selection, the default selection does not render (i.e., does not visually show as selected) on mobile. This is only a visual issue; the default selection is properly submitted when the user submits. Occurs on both iOS and Android.

Steps to Reproduce

Use a radio group component in a modal with a default radio group option defined.

Expected Behavior

The default radio group option should render as selected ...

chilly siloBOT
chilly siloBOT
#

Hi all,

Thanks for the reports. This lines up with some of our internal monitoring that we're actively investigating. I did have a couple questions that will help us nail this down.

  1. During this time, was your bot still sending heartbeats/receiving heartbeat ACKs? Given the symptoms I'd imagine so, but confirmation would be appreciated.
  2. To confirm, the outage you saw were primarily affected actions that were directly sent to your bot, not ones that were sent from a guild, correct? I n...
#

Hi all,

Thanks for the reports. This lines up with some of our internal monitoring that we're actively investigating. I did have a couple questions that will help us nail this down.

  1. During this time, was your bot still sending heartbeats/receiving heartbeat ACKs? Given the symptoms I'd imagine so, but confirmation would be appreciated.
  2. To confirm, the problem you saw primarily affected actions that were directly sent to your bot, not ones that were sent from a guild, corre...
chilly siloBOT
#

Hello,

  1. I think that if we stopped sending heartbeats, the shard would be considered invalid and would therefore have been closed, so I think my library continued to send heartbeats.
  2. I do think that's the case, as we were no longer receiving bot-related events such as GUILD_CREATE, INTERACTION_CREATE, and VOICE_SERVER_UPDATE.

However, I was receiving GUILD_DELETE in normal quantities.

chilly siloBOT
#

Description

Given a CV2 message with media (image/video), forwarding the message to a DM produces a gray box instead of the actual media when viewing on desktop, but not on mobile.

Steps to Reproduce

  1. Create a CV2 message. Here is a sample JSON:
{
  "type": 17,
  "accent_color": 1941746,
  "components": [
    {
      "type": 10,
      "content": "**Apple ([@Apple](https://x.com/apple))**"
    },
    {
      "type": 10,
      "id": 1,
      "content": "The wait is over. In...
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

@advaith1 @devsnek I removed the character limit from the slash command and confirmed that although the text that autofills the field is the 'nice' name, it passes the 'ugly' value into the slash command handler. This is a weird position to be in, because I can't use autocomplete with a nice name. Is there any way to have it autofill just the value? It seems counter-intuitive to do it this way, not at all what I expected.

Y...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Is it possible to add a new parameter to Message objects, such as attachments_used, to keep track of attachments in components/embeds? Would be very useful now that components v2 can use attachments and you'd like to grab the attachment id to keep it in the same message.

Currently with embeds you have to grab the attachment id by grabbing the attachment url and parsing it, if you want to re-use it.

Like this:

const url = context.user.avatarUrl;
const extension = url.split('?'...
chilly siloBOT
#

Description

I have noticed an inconsistency in how emojis are rendered in Voice Channel statuses. While standard Server Emojis work perfectly, Application Emojis (uploaded via the Developer Portal for a specific app/bot) do not render visually when used in a voice channel status.

Instead of displaying the image, the client only shows the text representation (e.g., :emoji_name:), even though the correct Markdown/ID was used.

Observed Behavior:
The Application Emoji is not parsed into an...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

To clarify, I'm asking if you're trying to set this channel status using the client or via the API (and whether you're using your user account to do this or your bot). It looks like the endpoints for setting the voice channel status are undocumented, so I want to clarify which of the two you're asking about here.

If you are setting this via your bot, could you please provide the endpoint and payload you're sending that would be helpful in trying to reproduce this issue

User is using t...

chilly siloBOT
chilly siloBOT
#

Description

When a user attempts to submit a Bot's Modal which contains multiple Selects, the user's Discord client will soft-crash to the Nelly screen.

This was tested using Modals that contained at least 2 Selects, and both Selects were of different types. The Modals were trigged from a Button in an ephemeral message.

Steps to Reproduce

  1. Respond to a Slash Command with an ephemeral message, and that message should contain at least one Button (not Premium/SKU/Link type).
  2. The...
chilly siloBOT
chilly siloBOT
#

Yes, exactly! As you noted in your edit, that is exactly the PR and the payload being used under the hood by discord.py.

Since I offered it earlier, here is the exact snippet I'm using, just to give you the full context:

# The ID used here is the Application Emoji ID from the Dev Portal
emoji_markdown = ":86097nervoussweating:" 
await voice_channel.edit(status=f"{emoji_markdown} test")
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Summary

Adds clarification for the min_values constraint when using select menus or other components with a min_values field inside label components with required: true.

Changes

Added a note to all components stating:

* min_values must be either omitted or at least 1 if required is omitted or true.

Reordered the \* note order to ensure it stays consistent.

Used the phrasing requested by @anthonydiscord in my last PR (https://github.com/discord/discord-ap...

chilly siloBOT
chilly siloBOT
#

Bumps and minimatch. These dependencies needed to be updated together.
Updates minimatch from 3.1.2 to 3.1.5

Commits

7bba978 3.1.5
bd25942 docs: add warning about ReDoS
1a9c27c fix partial matching of globstar patterns
1a2e084 3.1.4
ae24656 update lockfile
b100374 limit recursion for **, improve perf considerably
26ffeaa lockfile update
9eca892 lock node version to 14
00c323b 3.1.3
30486b2 update CI matrix and actions
Additional commits viewable in ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Currently we have applications to run viewports, but this is something more geared toward developing minigames and more complex systems, as it isn’t practical for a simple custom form use case.

It would be interesting to introduce a new component called “viewport modal”, where we could render our own page inside a form (necessarily a form), which would then post to the API, working just like a regular modal, where you receive the responses in the same way.

The ability to create a custom...

chilly siloBOT
#

Duplicate: https://github.com/discord/discord-api-docs/discussions/7294

I don't know if they have plans to open them more broadly (after all, it's the same techno than activities which are already open to basically everyone), but considering they are currently releasing new component types regularily since a few months, it may make sense that they first want to release "first-party" components first before allowing modal iframes.

chilly siloBOT
chilly siloBOT
#

@mrkirby153 Hi, I'm getting this event again (also got around the time as kpodp0ra) and it seems like all of my bots are having issues with slash commands (including http interaction ones). Some just don't get sent to me and others when I respond to just give me errors:

Error with InteractionCreate handler: HTTPError: Service Unavailable

chilly siloBOT
#

Background

I use a modal to configure most of my bot’s settings. It includes channel select components and text inputs from a simple slash command.

Observed behavior:
If a modal is opened and closed without submission, previously entered values are reused the next time the modal is shown, even if the user did not submit or change anything. Once the modal is submitted, the cache for that specific modal is cleared so not a worry about seeing old submitted data.

This persistenc...

chilly siloBOT
#

Description

A forum post will fail to create if the payload includes a button with an SKU.

Steps to Reproduce

Replace :channelId with a forum channel id,`` with a token, and SKU_ID with an SKU id:

curl 'https://discord.com/api/v10/channels/:channelId/threads' \
  --request POST \
  --header 'authorization: Bot ' \
  --header 'content-type: application/json' \
  --data-raw '{"name":"test","message":{"components":[{"type":1,"components":[{"type":2,"style":6,"sku_id":SKU_ID}]...
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Description

I am experiencing persistent duplicate guild-scoped slash commands that cannot be removed via the API.

In a specific server, multiple slash commands appear duplicated. Each duplicate shows a different command ID. Only one set belongs to my active application.

The additional command IDs do not correspond to any existing application in the Developer Portal.

Clearing global commands, clearing guild commands, and forcing guild sync via the API does not remove the duplicates.

...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

The duplicate commands appear only in the guild and not in DMs.

I have:

  • Cleared global commands via tree.clear_commands(guild=None) and synced.
  • Cleared guild commands via tree.clear_commands(guild=guild) and synced.
  • Forced a guild sync followed by a global sync.
  • Verified only one active application exists in the Developer Portal.
  • Verified that one of the duplicate command IDs does not correspond to any existing application.

After clearing globals, the duplicates remain visibl...

chilly siloBOT
#

Summary

Discord on Windows enters an endless update loop (checking-for-updates -> update-failure) even after clean reinstall.

Environment

  • OS: Windows 11 (10.0.22631)
  • App: Discord stable 1.0.9227
  • New updater logs show updater_client (reqwest/hyper)

What was tried

  1. Full uninstall/reinstall (including cache and Squirrel temp cleanup)
  2. Verified Update.exe and packages/RELEASES exist
  3. Switched VPN modes/nodes and tested both direct/proxy paths
  4. Tested WinHTTP/system pro...
chilly siloBOT
#

Description

Using the bulk ban endpoint returns an empty response on success instead of the expected JSON response. Important to note that the bans do go through, it's just the response ends up being empty.

I've had this been reported to me by at least 2 different library users so I don't think it's a one-off.

Steps to Reproduce

  1. Use POST /guilds/{guild_id]/bulk-ban
  2. Observe response being empty

Expected Behavior

Response is not empty

Current Behavior

Response is...

chilly siloBOT
chilly siloBOT
#

I've confirmed that this is purely a client-side validation issue, the api as expected, accepts an empty string as input and sends that to the bot in the interaction payload.

Having the option in the required section is especially helpful for mobile input, as the option can still be effectively optional, but without requiring the extra click to select the option. Unlike desktop, mobile clients can't just press tab, so it can be pretty annoying for commands that are used frequently.

chilly siloBOT
#

Here is a rather janky solution I found to work around this problem. It only works under specific conditions:

  • Community must be enabled for the server
  • The server must not have any stickers (because as far as I can tell, you can't block someone from sending stickers with channel perms)
    Steps:
  1. Enable SEND_MESSAGES and USE_APPLICATION_COMMANDS in the target channel.
  2. In the target channel's perms, disable ATTACH_FILES, ADD_REACTIONS, CREATE_PUBLIC_THREADS, pretty much any...
chilly siloBOT
#

Please do this. It’s frustrating that the two main text input methods for modern commands both have their flaws — slash command options can’t have newlines and modals aren’t WYSIWYG. I don’t so much mind the former constraint, I’d happily use primarily modals for longform text input if we had WYSIWYG.

In my case I’m currently running some of my modal text inputs through a handlebars parser with custom helpers so users can do things like {{channel "general"}} to create a mention without n...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Bump this. Having commands without being able to change permissions for their subcommands is pretty pointless. One of the main features of slash commands is to show only commands that are available to the user. Not being able to restrict subcommands defeats the whole purpose of this because either you try to use a command and get a "you cannot use this command" or you have countless single commands that should be grouped together but aren't. I love slash commands, but they would be way more p...

chilly siloBOT
#

Description

I don't understand, I'm trying to create an app, and site asks me to proof that I'm not a robot.

Steps to Reproduce

Login and try to create an app

Expected Behavior

I supose there should be capcha, that i need to do

Current Behavior

button cansel and X

Screenshots/Videos

Client and System Information

Win 11, Edge without any plugins

chilly siloBOT
#

Summary

Fixes #8132

The colors property on the Role object can be null in practice, but the documentation currently marks it as non-nullable. This causes deserialization failures in typed API clients (e.g. Swift, Rust, Go) that rely on the documented types.

Changes

  • permissions.mdx: Role Object table — colors type changed to ?[role colors] (nullable)
  • guild.mdx: Create Guild Role params — colors type changed to ?[role colors] (nullable)
  • guild.mdx: Modify Guild ...
chilly siloBOT
#

This PR reorganizes the developer documentation into a tabbed structure with new overview and guide materials.

[!IMPORTANT]
This PR aims to reorganize the existing docs and introduce new guides and overviews for developers learning the platform. We are working on more improvements to the docs over the next few months. We will be revisiting our existing guides, creating new ones, and better organizing our Reference docs.

New Tabs

  • Home
  • Bots & Companion Apps
  • Social SDK...
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

Summary

Ran an audit across Discord's public repos and found several issues. Consolidating everything into one issue instead of opening multiple PRs.

Bugs

discord/linked-roles-sample

  • Metadata key mismatch: register.js registers key as bakingsince but server.js pushes metadata as firstcookiebaked — linked roles silently fail to display
  • Missing express.json() middleware: /update-metadata endpoint reads req.body.userId but no body parser is configured — alw...
chilly siloBOT
#

Update: Deep Audit Results (discord-api-docs)

Ran a deeper scan across the docs. Here are the additional findings:


Invalid JSON Examples (21 blocks)

Multiple json code blocks fail strict JSON parsing. Most use // comments or ... ellipsis for documentation purposes — these should probably use the jsonc language tag instead.

File Blocks Issue
webhook-events.mdx 7 // user data comments
voice-connections.mdx 5 Trailing ...
chilly siloBOT
chilly siloBOT
chilly siloBOT
#

i don't get the security risk, if the user has permission to use the context command and the bot has permission to send messages in that chat whats the issue.
beside while it be annoying whats stopping someone from setting up slash command that takes a link to message (in the read only) as input, that can be used from chat where they do have permission to send messages. the end result would be the same.

chilly siloBOT
#

Description

May be a minor thing and I may be overthinking it but the wording just feels strange and almost foreign:

It almost sounds like trying to says "Discord Bots & User Apps" but needing another word. However it feels really out of place especially since it's not used anywhere else from what I can see.

Also side note, with how many people seem to be making AI driven bots maybe using the word "companion" isn't the right tone to set either...although that's a completely personal ...

chilly siloBOT
#

Description

I found many typos and grammatical errors in the German Privileged Intents application form.

Also, my Discord locale is English (UK) and it is shown in German - except the select menus, they are English. That is a bug to me.

Steps to Reproduce

  1. Have a German locale (be based in Germany)
  2. Open the form https://discord.com/developers/applications/{BOT_ID}/request-additional-intents

Expected Behavior

no typos and correct localization (or only english)

Curre...

chilly siloBOT
#

Description

There appears to be an issue with invite links that have a role attached. When such an invite link is shared externally (for example through WhatsApp) and opened by someone who is already a member of the server, the role is not assigned on mobile clients.

Instead, the app only shows a preview of the role along with a “Go To Server” button. After tapping the button, the user is redirected to the server, but the linked role is never granted.

https://github.com...

chilly siloBOT
#

I have attached the video as well It just doesn’t assign role. There is also one more thing which I have noticed. On PC it says “Accept” even if you’re already server member but on mobile it says “Go To Server” with role details but nothing happens.

Yeah, I am already a member of server and this linked role is working properly on PC client but isn’t assigning roles on mobile client.

This is strange, if the role is assigned on the PC version, then it should be assigned on the mobile ...

chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT
chilly siloBOT