github tootsuite/mastodon v3.2.0rc1
on GitHub

Note: This is a release candidate. It is intended to be stable, but not guaranteed.



  • Add SMTP_SSL environment variable (OmmyZhang)
  • Add hotkey for toggling content warning input in web UI (ThibG)
  • Add e-mail-based sign in challenge for users with disabled 2FA (Gargron)
    • If user tries signing in after:
    • Being inactive for a while
    • With a previously unknown IP
    • Without 2FA being enabled
    • Require to enter a token sent via e-mail before sigining in
  • Add limit param to RSS feeds (noellabo)
  • Add visibility param to share page (noellabo)
  • Add blurhash to link previews (ThibG, ThibG, ThibG, Sasha-Sorokin, Sasha-Sorokin, ThibG, ThibG, ThibG)
    • In web UI, toots cannot be marked as sensitive unless there is media attached
    • However, it’s possible to do via API or ActivityPub
    • Thumnails of link previews of such posts now use blurhash in web UI
    • The Card entity in REST API has a new blurhash attribute
  • Add support for summary field for media description in ActivityPub (ThibG)
  • Add hints about incomplete remote content to web UI (Gargron, noellabo)
  • Add personal notes for accounts (ThibG, Gargron, Sasha-Sorokin)
    • To clarify, these are notes only you can see, to help you remember details
    • Notes can be viewed and edited from profiles in web UI
    • New REST API: POST /api/v1/accounts/:id/note with comment param
    • The Relationship entity in REST API has a new note attribute
  • Add Helm chart (dunn, dunn, dunn)
  • Add customizable thumbnails for audio and video attachments (Gargron, Gargron, Gargron, Gargron, ThibG, ThibG)
    • Metadata (album, artist, etc) is no longer stripped from audio files
    • Album art is automatically extracted from audio files
    • Thumbnail can be manually uploaded for both audio and video attachments
    • Media upload APIs now support thumbnail param
    • On POST /api/v1/media and POST /api/v2/media
    • And on PUT /api/v1/media/:id
    • ActivityPub representation of media attachments represents custom thumbnails with an icon attribute
  • Add color extraction for thumbnails (Gargron, ThibG)
    • The meta attribute on the Media Attachment entity in REST API can now have a colors attribute which in turn contains three hex colors: background, foreground, and accent
    • The background color is chosen from the most dominant color around the edges of the thumbnail
    • The foreground and accent colors are chosen from the colors that are the most different from the background color using the CIEDE2000 algorithm
    • The most satured color of the two is designated as the accent color
    • The one with the highest W3C contrast is designated as the foreground color
    • If there are not enough colors in the thumbnail, new ones are generated using a monochrome pattern
  • Add a visibility indicator to toots in web UI (noellabo, highemerly)
  • Add tootctl email_domain_blocks (tateisu, Gargron)
  • Add “Add new domain block” to header of federation page in admin UI (ariasuni)
  • Add ability to keep emoji picker open with ctrl+click in web UI (bclindner, noellabo)


  • Change .env.production.sample to be leaner and cleaner (Gargron)
    • It was overloaded as de-facto documentation and getting quite crowded
    • Defer to the actual documentation while still giving a minimal example
  • Change tootctl search deploy to work faster and display progress (Gargron)
  • Change User-Agent of link preview fetching service to include “Bot” (Gargron)
    • Some websites may not render OpenGraph tags into HTML if that’s not the case
  • Change behaviour to carry blocks over when someone migrates their followers (ThibG)
  • Change volume control and download buttons in web UI (Gargron)
  • Change design of audio players in web UI (Gargron, ThibG, Gargron, ThibG, Gargron)
  • Change reply filter to never filter own toots in web UI (ThibG)
  • Change boost button to no longer serve as visibility indicator in web UI (noellabo)
  • Change contrast of flash messages (cchoi12)
  • Change wording from “Hide media” to “Hide image/images” in web UI (ariasuni)
  • Change appearence of settings pages to be more consistent (ariasuni)
  • Change “Add media” tooltip to not include long list of formats in web UI (ariasuni)
  • Change how badly contrasting emoji are rendered in web UI (leo60228, ThibG, mfmfuyu, ThibG)
  • Change structure of unavailable content section on about page (ariasuni)
  • Change behaviour to accept ActivityPub activities relayed through group actor (noellabo)


  • Remove the terms “blacklist” and “whitelist” from UX (Gargron, mayaeh)
    • Environment variables changed (old versions continue to work):
    • CLI option changed:
    • tootctl domains purge --whitelist-modetootctl domains purge --limited-federation-mode
  • Remove some unnecessary database indices (lfuelling, noellabo)
  • Remove unnecessary Node.js version upper bound (ykzts)


  • Fix large shortened numbers (like 1.2K) using incorrect pluralization (Sasha-Sorokin)
  • Fix streaming server trying to use empty password to connect to Redis when REDIS_PASSWORD is given but blank (ThibG)
  • Fix being unable to unboost posts when blocked by their author (ThibG)
  • Fix account domain block not properly unfollowing accounts from domain (Gargron)
  • Fix removing a domain allow wiping known accounts in open federation mode (ThibG)
  • Fix blocks and mutes pagination in web UI (ThibG)
  • Fix new posts pushing down origin of opened dropdown in web UI (ThibG)
  • Fix timeline markers not being saved sometimes (ThibG, ThibG, ThibG)
  • Fix CSV uploads being rejected (noellabo)
  • Fix incompatibility with ElasticSearch 7.x (noellabo)
  • Fix being able to search posts where you’re in the target audience but not actively mentioned (noellabo)
  • Fix non-local posts appearing on local-only hashtag timelines in web UI (noellabo)
  • Fix tootctl media remove-orphans choking on unknown files in storage (Gargron)
  • Fix tootctl upgrade storage-schema misbehaving (Gargron, angristan)
    • Fix it marking records as upgraded even though no files were moved
    • Fix it not working with S3 storage
    • Fix it not working with custom emojis
  • Fix GIF reader raising incorrect exceptions (ThibG)
  • Fix hashtag search performing account search as well (ThibG)
  • Fix Webfinger returning wrong status code on malformed or missing param (ThibG)
  • Fix rake mastodon:setup error when some environment variables are set (ThibG)
  • Fix admin page crashing when trying to block an invalid domain name in admin UI (ThibG)
  • Fix unsent toot confirmation dialog not popping up in single column mode in web UI (ThibG)
  • Fix performance of follow import (noellabo)
    • Reduce timeout of Webfinger requests to that of other requests
    • Use circuit breakers to stop hitting unresponsive servers
    • Avoid hitting servers that are already known to be generally unavailable
  • Fix filters ignoring media descriptions (BenLubar)
  • Fix soem actions on custom emojis leading to cryptic errors in admin UI (ThibG)
  • Fix ActivityPub serialization of replies when some of them are URIs (ThibG)
  • Fix rake mastodon:setup choking on environment variables containing % (ThibG)
  • Fix account redirect confirmation message talking about moved followers (ThibG)
  • Fix avatars having the wrong size on public detailed status pages (ThibG)
  • Fix various issues around OpenGraph representation of media (Gargron)
    • Pages containing audio no longer say “Attached: 1 image” in description
    • Audio attachments now represented as OpenGraph og:audio
    • The twitter:player page now uses Mastodon’s proper audio/video player
    • Audio/video buffered bars now display correctly in audio/video player
    • Volume and progress bars now respond to movement/move smoother
  • Fix audio/video/images/cards not reacting to window resizes in web UI (Gargron)
  • Fix very wide media attachments resulting in too thin a thumbnail in web UI (ThibG)
  • Fix crash when merging posts into home feed after following someone (ThibG)
  • Fix unique username constraint for local users not being enforced in database (ThibG)
  • Fix unnecessary gap under video modal in web UI (mfmfuyu)
  • Fix 2FA and sign in token pages not respecting user locale (mfmfuyu)
  • Fix unapproved users being able to view profiles when in limited-federation mode and requiring approval for sign-ups (ThibG)
  • Fix initial audio volume not corresponding to what’s displayed in audio player in web UI (ThibG)
  • Fix timelines sometimes jumping when closing modals in web UI (ThibG)
  • Fix memory usage of downloading remote files (Gargron, Gargron)
    • Don’t read entire file (up to 40 MB) into memory
    • Read and write it to temp file in small chunks
  • Fix inconsistent account header padding in web UI (trwnh)
  • Fix Thai being skipped from language detection (Sasha-Sorokin)
    • Since Thai has its own alphabet, it can be detected more reliably
  • Fix broken hashtag column options styling in web UI (ThibG)
  • Fix pointer cursor being shown on toots that are not clickable in web UI (arielrodrigues)
  • Fix lock icon not being shown when locking account in profile settings (ThibG)
  • Fix domain blocks doing work the wrong way around (ThibG)
    • Instead of suspending accounts one by one, mark all as suspended first (quick)
    • Only then proceed to start removing their data (slow)
    • Clear out media attachments in a separate worker (slow)

Upgrade notes

As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look: docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump

Non-Docker only:

  • Install dependencies: bundle install and yarn install

Both Docker and non-Docker:

  1. Run database migrations:
    • Non-Docker: RAILS_ENV=production bundle exec rails db:migrate
    • Docker: docker-compose run --rm web rails db:migrate
  2. Precompile the assets:
    • Non-Docker: RAILS_ENV=production bundle exec rails assets:precompile
    • Docker: The assets are already precompiled during the build step
  3. Restart all Mastodon processes



pre-release24 days ago