Discord

Welcome to Patch Notes! In this series, we comb through the newest changes in performance, reliability, responsiveness, usability, and general bug-squishing we’ve done to make Discord better. 

If you discover a bug of your own, check out our Bimonthly Bug Megathread on the community-ran r/DiscordApp subreddit. Tell us what’s been bothering you and our Engineering team will be more than happy to check it out. 

All fixes listed below have been committed and merged, but may still be rolling out to individual platforms at the time of this post.

Highlights

  • We recently made several improvements to how our Android app initializes during launch. The result of these improvements is a ~20% improvement in app launch times on our median Android device. 
  • We re-wrote our Media Proxy service in Rust (from Go). Media Proxy is the service that ingests media you upload to Discord. While doing this, we also modernized the infrastructure to our current standards. What does this nerdy stuff mean for you? We’re observing ~22% improved latency in the aggregate (over 40% faster at p90!), and improved reliability of the service. 
  • Over the course of several months, we’ve steadily improved the reliability of push notifications on Discord across all server sizes. Servers with less than 2500 users now have a 99.98% success rate of push notifications being delivered within 30 seconds. And now, on a server like Midjourney, we’re able to notify 20 million users in under 15 minutes from an @everyone (previously, we couldn’t guarantee delivery).
  • Ever just wanted to play Chess in the Park without notifying your entire friend server? We know, we get it. You can now launch Apps in DMs on desktop! This is a more flexible way to get into activities, and it shipped with a couple of nice features like a quick launch bar at the top of the DM list with your most recent apps. Hope you like it.
  • Over many months, we have received many reports of strange layout breaking behaviors on Android from users and staff. These were generally hard to reproduce but devastating when they occurred. We identified and shipped a fix for a suite of issues on Android 13 and lower versions involving device rotation and screen size calculations. Users affected should see fewer instances of weird layout breaking issues on these devices.
  • Our Privacy & Safety settings in User Settings have been redesigned to enhance discoverability, usability, and scalability; paving the way for more user-friendly Trust settings. These improvements include a new tab structure, improved grouping, and clearer descriptions as well as some design improvements. 

General

  • MacOS desktop notifications now use the OS’s native APIs. This includes a couple of immediate improvements: message ping sounds now respect a user’s Focus/Do Not Disturb settings and multiple notifications can appear for the same channel as a group. It also gives us access to the framework to continue to develop these.  
  • Searching for messages that are “from:me” or “mentions:me” now autocompletes on desktop. Just a little shortcut to make your life slightly easier.
  • I’m reasonably sure all ~12 Discord Linux users are employees, but we recently shipped support for soundshare and Wayland screen share on Linux (which is default in Ubuntu 22 and higher). So, for any affected Linux users that didn’t review the PRs, there shouldn’t be issues with screen share video or audio working any more. Just kidding. We love you, Linux users.
  • Fixed the styling of the UI element to edit Forum channel tags.
  • Clicking on a channel topic on desktop should no longer open two overlapping modals.
  • Resolved an issue that caused specific Android devices to duplicate every letter of channel names during channel creation. 
  • Improved the handling of friend request buttons in narrow client widths on desktop, meaning you should see less “…” happening.
  • Resolved a slight layout shift and incorrect border animation when hovering over note input on a user profile.
  • Resolved a potentially confusing button tooltip that implied the user needed to validate their email in the data requests UI. 
  • Resolved a bug that caused user profiles opened from friend requests on desktop to be sized incorrectly, rendering only portions of the profile.
  • Fixed a bug that caused the image in the channel follow UI on mobile to not crop properly.
  • Resolved a slight image alignment issue in the Shop’s purchase successful modal.
  • Resolved a couple slight padding issues in the Quests dismiss feedback modal.
  • Resolved an issue on iOS that could cause the app to be zoomed out further than expected.
  • Fixed an issue that could improperly block a user’s ability to edit channel details from channel settings.
  • Reverted a change that caused mobile search results to no longer accurately reflect the total number of results.
  • Resolved an issue that caused a client crash if trying to add emojis into the Forum channel creation UI.
  • Resolved an Android issue where the “Remove Friend” confirmation modal would render behind other elements.
  • Resolved issues where the tabs in the Privacy & Safety settings weren’t functioning properly and were cropped incorrectly.
  • Fixed a bug that caused swiping to go back when viewing Search results to no longer function.
  • Improved the reliability of the Claimed Quests UI for users that had completed many Quests.
  • Added the ability to edit a server invite link when inviting a user to a server on mobile.
  • Profile customization should now work properly for Nitro Credit. 
  • Resolved a bug where the keyboard could render on top of various text inputs, blocking the ability to see what was typed.
  • Viewing Mutual Friends/Servers for a user you do not share friends/servers with should no longer show a loading indicator forever. 
  • Resolved an issue where custom status durations weren’t applying properly.
  • Fixed a mobile bug that prevented users from backing out of the popup to sync a channel’s permissions to the category.
  • Fixed a bug that could cause Android toasts to incorrectly render behind various UI elements.
  • The Shop tab on tablets should no longer have stretched out banner art.
  • Resolved an issue where the Discover Servers icon could have a dismissible badge.
  • The chat input for channel search on iOS now scrolls properly with text entry.
  • Fixed an animation issue with the Space Evader profile effect on Android.
  • Push notifications should now include user nicknames.
  • Resolved an issue that could prevent the current server from being listed in the server filters of the Emoji picker.
  • Fixed a bug with the Mobile DM options button that could cause it to overlap with usernames.
  • Resolved some 1 pixel width padding issues in Shop. 
  • Resolved an issue where animated Emojis on iOS would stop animating after being tapped.
  • Animated Emojis should now properly work in custom statuses.
  • Resolved padding issues on Android between the app and the OS navigation buttons.
  • Users should now be able to edit Emoji forum tags that are no longer valid due to the Emoji being deleted from the server.
  • Resolved a padding issue on the desktop client in the reaction Emoji picker.
  • Fixed a bug on Nitro Home that prevented users from using the navigate back swipe gesture.
  • Resolved some date formatting issues that affected localization in Mod View.
  • Resolved an issue that caused the “View Interaction Info” option in Mod View to sometimes not be available.
  • Resolved an issue that caused the Shop’s purchase button to flicker when hovered over.
  • Resolved issues with audit log entries for voice channel status changes not functioning properly.
  • Resolved an issue that caused certain buttons/icon to not change color properly on mobile when previewing a theme.
  • Resolved an issue where the “Favorite GIF” button was not visible on GIFs with white backgrounds.
  • Resolved an issue with polls where holding ctrl while pressing enter would start the poll but also not dismiss the UI. Doing this repeatedly would create duplicate polls.

Chat

  • We simplified our Mobile Chat Input codebase, which was an area that contained a lot of known issues. The goal was to simplify the code base, but we ended up with some significant performance wins anytime you’re typing in the app. To be honest though, I don’t know who will be happier: users or the engineers that no longer have to try to navigate that sea of tech debt. 
  • Fixed a bug on Android that could truncate messages if you typed the message and sent it fast enough. You had to be zoomin’, though. Props if you encountered this bug.
  • Fixed a bug that caused the reaction modal to have incorrect spacing in the user list.
  • Resolved an issue that caused pasting large amounts of text into Discord on desktop to improperly offset UI elements.
  • Resolved an issue on iOS that caused pinned messages to render overtop of the message list without a background for the element.
  • Resolved an issue where viewing certain messages could cause a crash in the desktop client.
  • Fixed styling issues in the “Add Friends to DM” modal.
  • Resolved a low reproducibility issue where text sizes could grow while scrolling through messages on iOS.
  • Resolved an issue that could prevent users from forwarding messages with custom Emojis.
  • User nicknames should now be properly reflected when adding users to a Group DM.
  • Made it a bit easier to long press on a reaction on iOS by making the interact-able element slightly larger.
  • Users should now be able to open a Stage channel’s text chat without joining the Stage.
  • Resolved an issue where emoji reaction counts could be incorrect in thread starting messages.
  • Resolved an issue that caused the voice message UI to not adjust when the keyboard was minimized.
  • Added the paste action to the context menu in a popped-out voice channel’s text chat.
  • Resolved an issue on Android where tapping the send button quickly could send a message multiple times.
  • Resolved an Android issue where opening threads from the message list could cause a crash.
  • Resolved an issue where usernames in replies and join messages were not resolving properly.
  • Fixed a bug on mobile where the channel list would still be rendered while chat is fully open, wasting previous frame time.

Activities and Apps

  • Mobile clients should no longer show invalid context items, like pin message, on ephemeral messages (aka, a message from an app that only you can see).
  • Resolved a short lived issue that prevented apps from launching via the App Launcher text interface.
  • Resolved an issue that could prevent the keyboard from functioning properly in Activities.
  • Resolved a crash that could occur from message deletion while in an Activity.
  • Resolved an issue in the App Directory where pressing either the “Add App” or “View App” button would make the other button disappear.
  • Fixed an issue that caused the “Authorize Activity” modal to have an unnecessary scrollbar.
  • Resolved a crash when attempting to view commands for an app which had no commands in a DM.

Audio/Video

  • Clicking “Watch Stream” from a user’s channel modal no longer opens the user’s profile.
  • Fixed a bug that improperly cropped the “Join Voice” button in Group DMs on Android. 
  • Fixed an issue that caused the channel list background to render in full screen voice chats.
  • Joining a call from within the app on Android should now properly stop the call sound/vibration. Previously, only accepting/dismissing the call Notification would end the call SFX and vibration. 
  • Resolved an issue that could incorrectly cause the channel list to show the users active in an offscreen voice channel as 0.
  • Improved the mute state button in voice channel popouts to be more intuitive. 
  • Fixed a low repro issue that could cause a client crash when opening the profile of someone who is actively screen sharing.
  • Opening a text chat during voice channel’s ongoing video call on a mobile device in landscape orientation should now work properly.
  • Fixed a bug where the user limit in VCs would sometimes not render on the channel.
  • The profile modal within a Voice Chat should now respect connect permissions of that channel.
  • Resolved cosmetic issues with Stage channel streams on iOS.
  • Resolved an issue that caused Android video to be mirrored for recipients.
  • Resolved video flickers that occurred on iOS when swapping between PiP and full screen during a video call.
  • Voice call controls should now stay on the screen for mobile clients unless dismissed by the user.

Media

  • Continuing our conquest to provide an S tier media sharing experience on Discord, we resolved some WebP playback performance issues on iOS and shipped AVIF support to all platforms. AVIF is a modern image format that has higher compression ratios than legacy formats, and supports features like HDR, ICC Color profiles, transparency, etc. If you’re someone who really cares about image quality, this is an exciting new feature.
  • Significantly improved WebP decoding performance on iOS. This is especially noticeable for animated WebP files with high-resolution frames or large frame counts.
  • Fixed a bug that caused the keyboard to render in front of the media picker when trying to share media when creating a new DM on mobile. 
  • Resolved an issue that caused video uploads on Android to not function properly for an evening.
  • Resolved an issue where YouTube embeds would ignore the timestamp parameter.
  • Fixed an issue that caused Remix to crash the client on iOS.
  • Videos that are within a spoiler tag should no longer have the video player controls cut off.
  • iOS users should now be able to search properly in media channels again.
  • Videos from 3rd party websites that can’t be embedded now properly inform the user.
  • Navigating away from an active embedded video with the navigate back gesture should now properly stop playback on iOS.

Accessibility

  • Screen readers should no longer be able to focus on bullet points in messages.
  • Screen reader users should now be able to navigate to the “Copy Invite Link” button in a server channel’s context menu.
  • Improved the specificity of the name of the “Change Camera” button for screen readers.
  • Added roles for screen readers to the “Emoji”, “GIFs” and “Stickers” buttons in the expression picker.
  • Improved the contrast of the error text in account creation flows.
  • Unread message counts are now available to access via screen readers.
  • The “Join an existing server” element is now properly marked as a heading for screen readers.
  • “Voice Settings” and “Discord Member Since” in a Voice Chat profile are now marked properly as headings for screen readers.
  • The “Leave Call” button’s explanation for Screen Readers is no longer “Start Voice Call”. Whoops.
  • Resolved an issue for Talkback users that prevented setting their date of birth.
  • The volume slider in voice chat now has an accessible name.
  • The “Edit Status” and “Status Duration” texts when configuring a custom status are now marked as headings for screen readers.
  • Removed an invisible element on the Profile screen in the Server Profiles tab that could be selected by screen readers.
  • The “Expire After” and “Max Uses” sections of the Server Invite UI now have roles assigned for screen readers.
  • The “infinite” button when creating a server link now has an accessible name.
  • Screen readers should no longer get their focus stuck on “Copy Link” in the DM list.

All relative measurements cited were performed internally with our own instrumentation and tooling.……… oh hey, you read everything! If you’re itching for the latest updates to Discord, you can find our previous Patch Notes articles here, or check out our archive of past Changelogs if you’re more into the fun stuff.  

THE AUTHOR
MORE FROM