Discord

Category: communications

9 changes tracked

Monitored sources:

docs · every 6h

SDK packages:

discord.jsdiscord.pynextcorddiscordrbgithub.com/bwmarrin/discordgonet.dv8tion:JDADiscord.Netserenity

Last polled: 9/12/2026, 12:00:04 AM

Change History

breakinghigh97% confidence

Multiple breaking changes announced: (1) Channel obfuscation for bots lacking VIEW_CHANNEL permission rolls out on Nov 16, 2026 via HTTP and is testable now via Gateway; (2) Battle.net connections will be removed from GET /users/@me/connections starting September 22, 2026 with no replacement; (3) Channel application_id field is now nullable; (4) Prune endpoints now require ADMINISTRATOR permission for guilds with PRUNE_REQUIRES_ADMIN feature; (5) Message forwarding now requires message content access.

Migration: Audit bots that enumerate all guild channels via GET /guilds/{guild.id}/channels or rely on full channel metadata over Gateway — update to handle obfuscated channels and omitted entries. Remove any logic depending on Battle.net connections from GET /users/@me/connections before Sep 22, 2026. Update channel object parsers to treat application_id as nullable. Check prune endpoint permission logic for guilds with PRUNE_REQUIRES_ADMIN. Ensure forwarding apps have message content access.
endpoint:GET /guilds/{guild.id}/channelsendpoint:GET /users/@me/connectionsendpoint:GET /guilds/{guild.id}/pruneendpoint:POST /guilds/{guild.id}/prunemodel:channel.application_idmodel:channel.flags (CHANNEL_OBFUSCATED 1<<17)param:PRUNE_REQUIRES_ADMIN guild featuregateway:Channel Update event (obfuscation)

9/12/2026

Effective: 11/16/2026

breakinghigh97% confidence

Multiple breaking changes announced: (1) Channel obfuscation for bots lacking VIEW_CHANNEL permission via Gateway and HTTP, effective November 16, 2026 for HTTP; (2) Battle.net connections removed from GET /users/@me/connections starting September 22, 2026; (3) PRUNE_REQUIRES_ADMIN guild feature adds new permission requirement for prune endpoints; (4) channel.application_id is now nullable.

Migration: Audit bot code for reliance on hidden channel metadata; update channel data handling to treat application_id as nullable; remove reliance on Battle.net connections from GET /users/@me/connections before September 22, 2026; handle ADMINISTRATOR permission requirement for prune endpoints on guilds with PRUNE_REQUIRES_ADMIN feature.
endpoint:GET /guilds/{guild.id}/channelsendpoint:GET /users/@me/connectionsendpoint:GET /guilds/{guild.id}/pruneendpoint:POST /guilds/{guild.id}/prunemodel:channel.application_idmodel:channel.flagsparam:CHANNEL_OBFUSCATED flag (1 << 17)

9/5/2026

Effective: 11/16/2026

breakinghigh97% confidence

Discord is introducing Channel Obfuscation for bots: over the Gateway, channels a bot lacks VIEW_CHANNEL on will have sensitive fields obfuscated (name becomes '___hidden___', other fields nulled/reduced, new CHANNEL_OBFUSCATED flag set); over HTTP, GET /guilds/{guild.id}/channels will omit those channels entirely starting November 16, 2026. Additionally, the channel object's application_id field is now nullable, and Battle.net connections will no longer be returned by GET /users/@me/connections starting September 22, 2026.

Migration: Audit your bot for any code that reads channel data it lacks VIEW_CHANNEL on (e.g., full channel list mirroring, permission calculations across all channels, channel structure reporting). Use the CHANNEL_OBFUSCATED flag (1 << 17) to detect hidden channels. Test Gateway behavior now by sending 1 << 15 in the Identify capabilities field or enabling 'Private Channel Obfuscation' in the Developer Portal. Also update any code that assumes channel.application_id is always a snowflake when present — it can now be null. Remove any reliance on Battle.net connections from GET /users/@me/connections before September 22, 2026.
endpoint:GET /guilds/{guild.id}/channelsmodel:Channel Objectparam:channel.flags (CHANNEL_OBFUSCATED 1 << 17)param:channel.application_idendpoint:GET /users/@me/connectionsheader:Gateway Identify capabilities

8/28/2026

Effective: 11/16/2026

breakinghigh95% confidence

Discord is obfuscating channels that bots lack VIEW_CHANNEL permission on: over the Gateway, sensitive fields will be hidden and a new CHANNEL_OBFUSCATED flag (1<<17) will be set; over HTTP, GET /guilds/{guild.id}/channels will omit those channels entirely starting November 16, 2026. Additionally, the channel object's application_id field is now nullable, and Battle.net connections will no longer be returned by GET /users/@me/connections starting September 22, 2026.

Migration: Audit your bot for any logic that reads channels it cannot view (e.g., full channel list mirroring, permission calculations across all channels). Handle the new CHANNEL_OBFUSCATED flag (1<<17) on channel.flags and treat application_id as nullable. Test Gateway obfuscation now by sending 1<<15 in your Identify capabilities or enabling the Developer Portal toggle. Prepare for HTTP omission on November 16, 2026.
endpoint:GET /guilds/{guild.id}/channelsendpoint:GET /users/@me/connectionsmodel:channel.flagsmodel:channel.application_idparam:CHANNEL_OBFUSCATED flag (1<<17)

8/26/2026

Effective: 11/16/2026

breakinghigh97% confidence

Discord is obfuscating channel data for bots that lack VIEW_CHANNEL permission. Over the Gateway, hidden channels will have sensitive fields replaced with placeholder values and a new CHANNEL_OBFUSCATED flag; over HTTP, GET /guilds/{guild.id}/channels will omit those channels entirely starting November 16, 2026.

Migration: Audit your bot for any logic that reads channels it cannot view (e.g., full channel list mirroring, cross-channel permission calculations). Use the new CHANNEL_OBFUSCATED flag (1 << 17) to detect obfuscated channels on the Gateway. Test today by sending capability 1 << 15 in your Identify payload or enabling the 'Private Channel Obfuscation' toggle in the Developer Portal.
endpoint:GET /guilds/{guild.id}/channelsmodel:Channel Objectparam:flags (CHANNEL_OBFUSCATED 1 << 17)param:permission_overwritesparam:name

8/22/2026

Effective: 11/16/2026

breakinghigh97% confidence

Discord is changing channel visibility for bots: over the Gateway, channels a bot lacks VIEW_CHANNEL on will have sensitive fields obfuscated (name becomes '___hidden___', new CHANNEL_OBFUSCATED flag set), and over HTTP, GET /guilds/{guild.id}/channels will omit inaccessible channels entirely starting November 16, 2026. Additionally, the channel object's `application_id` field is now nullable, which is a minor breaking change for code assuming it is always a snowflake when present.

Migration: Audit any bot logic that reads channels it may not have VIEW_CHANNEL permission for (e.g., full channel list mirroring, permission auditing, channel structure reporting). Use the CHANNEL_OBFUSCATED flag (1 << 17) to detect obfuscated channels. Test Gateway behavior now by sending capability 1 << 15 in the Identify payload or enabling the 'Private Channel Obfuscation' toggle in the Developer Portal. Update code to handle `application_id` as nullable on channel objects.
endpoint:GET /guilds/{guild.id}/channelsmodel:Channel Objectparam:application_idparam:flags (CHANNEL_OBFUSCATED 1 << 17)param:permission_overwritesheader:Gateway CHANNEL_UPDATE event

8/15/2026

Effective: 11/16/2026

breakinghigh95% confidence

The `application_id` field on the Channel object is now nullable for future guild channels, which is a breaking change for apps or libraries that assume the field is always a snowflake when present. Additionally, Riot Games connections are no longer returned by the `GET /users/@me/connections` endpoint starting July 10, 2026, with no replacement.

Migration: Update any code that reads `channel.application_id` to handle `null` values. For Riot Games connections, remove any logic that relies on `GET /users/@me/connections` returning Riot or League of Legends connection data, as there is no replacement.
model:Channel.application_idendpoint:GET /users/@me/connections

8/14/2026

Effective: 7/10/2026

breakinghigh95% confidence

The `application_id` field on the Channel object is now nullable, meaning it can be serialized as `null` for future guild channels. Apps or libraries that assume this field is always a snowflake when present must be updated to handle `null`.

Migration: Update any code that reads `channel.application_id` to handle `null` values in addition to the expected snowflake type. Do not assume the field is always a non-null snowflake when present.
model:Channelparam:application_id

8/12/2026

Effective: 8/5/2026

breakinghigh92% confidence

Multiple breaking and deprecation changes were introduced, most notably: the `application_id` field on the Channel object is now nullable (previously always a snowflake when present), Riot Games connections are no longer returned by GET /users/@me/connections, `premium_type` on the User object now returns 0 without the `identify.premium` scope, and message forwarding now requires message content access.

Migration: 1) Update code that assumes `application_id` is always a non-null snowflake to handle `null`. 2) Remove any reliance on GET /users/@me/connections for Riot Games connection data — no replacement exists. 3) Apply for the `identify.premium` scope if Nitro subscription level is required. 4) Ensure your app has message content access before forwarding messages.
model:Channel.application_idendpoint:GET /users/@me/connectionsmodel:User.premium_typeendpoint:Message Forwardingparam:identify.premium scopemodel:Application.flags_newendpoint:PUT /lobbiesendpoint:POST /lobbies/{lobby.id}/messagesendpoint:GET /lobbies/{lobby.id}/messagesendpoint:PUT /channels/{channel.id}/voice-status

8/6/2026

Effective: 8/5/2026

Get alerts when Discord changes affect your code

Connect your GitHub repos and Breakwatch will map your Discord usage and alert you about relevant changes.

Get started for free