Discord

Welcome to the first edition of Patch Notes! In this new feature on the Discord Blog, we’re combing through the newest technical fixes and the nitty-gritty details we’ve implemented to make Discord better. 

This year, we’ve brought tons of talented engineers and developers together to focus on taking their metaphorical flyswatters and salt guns to those pesky bugs you might encounter while using Discord. 

Expect Patch Notes to contain the exact details regarding changes in performance, reliability, responsiveness, usability, and general bug-squishing. The in-app Changelog you know and love will still be home to new feature announcements and the “fun” stuff. 

With intros out of the way, let’s take a peek at the latest fixes our expert engineers implemented to make Discord better! 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

  • Improved server switching speed on Android and iOS apps by 30+%, depending on device and network performance.
  • Improved aggregate app start-up time on lower-end Android devices by ~10%.
  • Fixed an issue causing Bluetooth headphones to not be set as the current audio devices properly when enabled during a call.
  • We upgraded to Electron 28, which provided meaningful improvements to video decode latency and reduction in frozen frames while watching Go-Live streams.
  • We made some infrastructure improvements, including moving to GCE C3 instances and removing an nginx layer, which yielded a ~25% reduction in p90+ API latency.
  • We recently shipped new fonts for gg sans italic and monospace. This should make text on Android and iOS render more consistently and at a higher quality than before.
  • We’re currently in the process of rolling out our 64-bit Discord client to Desktop users. This client should improve memory-related stability and solve a couple of known issues in the 32-bit client.

General

  • Resolved a category of Android crashes that reduced the overall app crash rate by ~37% on Android devices.
  • Implemented consistent hash routing for guilds data service resulting in ~20% reduction in p99 read latencies.
  • Fixed a longstanding background crash on iOS, so you may notice the app staying open in the background slightly more often.
  • In-app notifications for friend requests now should render on app load. 
  • Friend requests should now collapse into a single UI element when at least 3 are pending.
  • Fixed a bug that prevented users from removing favorited gifs if they somehow ended up over the favorited gif cap.
  • The scroll bar in the ”Family Center” should now be Discord-themed.
  • Resolved an issue with the “Activate Overlay Chat” hotkey no longer functioning in the Overlay, which required users to unlock the Overlay to send messages.
  • The profile page should now allow users to save profile edits after using the “reset” button to clear the bio.
  • Fixed an issue where the Midnight theme was no longer able to be selected on mobile. 
  • Autocomplete should now function on mobile when trying to search for messages using the “has:” parameter.
  • Resolved an issue causing friend requests to not automatically be rejected when blocking a user.
  • The per-server avatar decoration dialog should now properly use the server avatar instead of the global avatar.
  • Attempting to set a custom status from a user action sheet should no longer open a legacy modal.
  • Users are now presented with an error message when trying to upload an image or gif that’s too large as a webhook image.
  • Fixed a bug that occasionally caused the server banner in the channel list to not use the proper font color or correct gradients.
  • Resolved an issue where info sections in the user profile modal were not rendering at the correct width.
  • The shop tab should now properly load your user profile when navigating avatar decorations.
  • Resolved an issue where poll answer input on mobile had duplicate UI elements.
  • Attempting to open the support page from profile settings in the iOS app should now properly redirect to the browser.
  • Resolved an issue where users could hit rate limits during normal scrolling of search pages.
  • The search menu for channels should now properly reflect the time since last channel activity.
  • Fixed a bug where the “Login” button on the mobile welcome screen had a gray, rectangular background.
  • Resolved a bug where profile badges were misaligned on mobile while editing certain profile fields.
  • Resolved an issue where the back arrow wouldn’t render when looking at a profile on mobile. 
  • Fixed an issue where the profile avatar would not be aligned properly when certain other elements existed in the profile.
  • The escape key now should function for navigation when browsing the Collectibles Shop.
  • Resolved an issue that caused a JavaScript error to render for some users on client launch on Mac.
  • Resolved an issue where padding was missing on the “Potential Dangerous Download” modal on mobile.
  • Resolved an infrequent issue where certain users couldn’t unequip avatar decorations and profile effects on mobile.
  • Resolved a case where the action sheet on mobile would not render properly.
  • Resolved an issue where the spoiler icon for spoiler-tagged images in search wasn’t aligned properly.
  • The “save” button when editing roles should no longer be prevented from rendering by long role names.
  • The keyboard should properly dismiss when opening the Nitro gifting tab on mobile now.
  • When users upload multiple files at once, the layout on mobile should now be organized properly.
  • Per user feedback, we created a permission for “Creating Polls”.

Chat

  • Fixed a bug that caused tablets using external keyboards to not be able to use the emoji selector.
  • Fixed an issue where tablet users couldn’t swap between emojis/stickers/gifs in the picker.
  • The ellipsis that is used to indicate a truncated message during replies shouldn’t be missing anymore.
  • Resolved an uncommon iOS unicode rendering issue that resulted in iOS users occasionally being unable to see any messages in a channel.
  • Resolved a recent regression where the blue “new messages” banner on mobile would persist after the user had viewed the most recent message.
  • Autocomplete for a single user or server match on mobile no longer appears to be scrollable.
  • The server navigation of the expression picker should no longer render above the keyboard after the expression picker is dismissed on mobile.
  • Resolved an issue where message notifications on iOS didn’t have a maximum height, which occasionally created very large notifications.
  • Fixed a bug that caused message backgrounds to flash whenever a reaction was added, which was very visually noisy if reactions were rapidly added to a particular message.
  • A message’s spoiler view state should no longer reset when adding a reaction.
  • Mentions shouldn’t append extra text on iOS when there’s an inline text prediction anymore.
  • Fixed a desktop and web app crash caused by resizing a call window while the text in video chat frame was maximized.
  • Resolved a mobile bug that caused the channel list to render partially blank if a user navigated to a message via a notification while looking at server settings.
  • Resolved an issue where users sometimes weren’t able to select an emoji from the bottom row of the emoji picker.
  • Resolved a bug causing alt-text indicators to be broken on desktop.
  • Fixed a bug where Discord sometimes wouldn’t autofocus to chat input when typing.
  • Resolved an issue where channels wouldn’t be marked as read even when the user navigates to the most recent message.
  • Resolved a rare case where the channel list and DM list could render overlapping each other on mobile.
  • Resolved an issue where searching for stickers in the sticker picker was extremely slow.
  • Long server names should now be truncated properly in the channel list.
  • Fixed an issue with the “Bot” tag spacing on mobile devices.
  • Selecting an emoji in the emoji picker following a search should only take one tap now on mobile.

Activities

  • Fixed a bug that allowed activities to be started in text channels when permissions were disabled.
  • When a user is watching a stream on mobile and has a video channel chat open, the back button should now close the chat pane instead of leaving the stream.
  • Resolved an issue causing mobile clients to occasionally be unable to join Activity sessions through the video chat tile.
  • Fixed a visual issue where the application header would render twice under specific circumstances while using certain Activities.
  • Popping out an activity window should now reload the activity instead of closing the activity.
  • Fixed an issue where the wrong text color was used when informing the user that no activity was found based on their search criteria. 
  • Copy-pasting a slash command in iOS should now properly translate parameters, rather than putting the entire string in the first parameter.

Audio/Video

  • Ever wanted to mute yourself without having to pull your phone out of your pocket? Discord on iOS now supports muting using your AirPods which synchronizes to the app.
  • Fixed a bug that could cause audio for notifications to stop working and sound effects to crackle.
  • Camera orientation should now be correct when landscape orientation is used in an AV call on Android.
  • The “Auto-Sensitivity” voice detection setting on iOS now should retain its state following app restart.
  • Resolved an issue where Krisp stopped working on web clients. 
  • Activity icons in the voice user list should no longer have the wrong color on iOS.
  • Resolved an issue where voice messages weren’t properly reducing background noise.
  • Resolved an inconsistent issue where users couldn’t mute properly in DM calls
  • Mute states for another user in a server channel voice call can now be changed in a DM call. 
  • Fixed a bug that caused the incorrect stream resolution to be selected when streaming in horizontal mode, from a mobile device, with the system pip active. 
  • Resolved an issue where the default hotkey to “Answer Call” no longer worked.
  • Starting a screen share on Android shouldn’t prompt the user twice anymore. 
  • While in a voice call, navigating to a different server or DM chat and then returning to the voice call server now should place you in the correct channel.
  • When moving members between voice channels, the “Move Members” permissions should now be respected for both the user’s current channel and the destination channel.

Media

  • Via various incremental changes, we’ve improved video startup time on desktop and web by as much as 15%, depending on device and network performance. 
  • Optimized the backend attachment creation process, stabilizing and reducing time to begin message attachment uploads by roughly 15-20% on average.
  • Ever been surprised by an embedded video pausing mid-play on mobile? Our mobile apps should now display a download progress indicator on the video timeline. 
  • Resolved an issue where the emoji picker in Remix would slow down app performance significantly.
  • Resolved an issue where the text tool was not functioning in Remix.
  • Resolved bugs where certain links to popular websites would open in the in-app browser instead of the relevant applications. 
  • Fixed an issue where .gifv files were not properly respecting auto-play settings.
  • Fixed an issue where the emoji picker in Remix would not close properly.
  • Resolved an issue where the icon that indicates a message is replying to an attachment wasn’t rendering.
  • Image carousel controls should now have more contrast to make them easier to see on desktop.

Accessibility

  • The Display Name input field should now have an accessible name for screen readers.
  • Users should now be able to change phone number country codes with Talkback.
  • The “Add people to voice chat” prompt should no longer persist outside of call UX when “reduced motion” is enabled in accessibility settings.
  • We added a dismiss button above the action sheet to make dismissing action sheets easier and more intuitive for screen-reader users.
  • Fixed an issue where voiceover focus could get stuck during a “Link Copied” notification.
  • Voice messages should now be labeled properly for screen readers.
  • With enlarged font sizes, role names should no longer be truncated in the autocomplete UI.
  • “Reduced Motion” settings should no longer prevent the chat bar from retracting in certain situations on iOS.
  • Server header should now be flagged appropriately for screen readers.
  • Improved the contrast ratio for focused menu items.

If you think of a particular bug that bothers the heck outta ya, check out our Bimonthly Bug Megathread on the community-ran r/DiscordApp subreddit. Tell us what bugs are bothering you and our Engineering team will be more than happy to check it out. They’re like Discord exterminators, minus the harmful pesticides.

All relative measurements cited were performed internally with our own instrumentation and tooling.

THE AUTHOR
MORE FROM