Skip to content
Choose a tag to compare


@Gargron Gargron released this
Choose a tag to compare




  • Add link to existing domain block when trying to block an already-blocked domain (ThibG)
  • Add button to view context to media modal when opened from account gallery in web UI (Gargron)
  • Add ability to create multiple-choice polls in web UI (ThibG)
  • Add GITHUB_REPOSITORY and SOURCE_BASE_URL environment variables (rosylilly)
  • Add /interact/ paths to robots.txt (ThibG)
  • Add blurhash to the Attachment entity in the REST API (Gargron)


  • Change hidden media to be shown as a blurhash-based colorful gradient instead of a black box in web UI (Gargron)
  • Change rejected media to be shown as a blurhash-based gradient instead of a list of filenames in web UI (Gargron)
  • Change e-mail whitelist/blacklist to not be checked when invited (Gargron)
  • Change cache header of REST API results to no-cache (ThibG)
  • Change the "mark media as sensitive" button to be more obvious in web UI (Gargron, Gargron)
  • Change account gallery in web UI to display 3 columns, open media modal (Gargron, Gargron)


  • Fix LDAP/PAM/SAML/CAS users not being pre-approved (Gargron)
  • Fix accounts created through tootctl not being always pre-approved (Gargron)
  • Fix Sidekiq retrying ActivityPub processing jobs that fail validation (ThibG)
  • Fix toots not being scrolled into view sometimes through keyboard selection (ThibG)
  • Fix expired invite links being usable to bypass approval mode (ThibG)
  • Fix not being able to save e-mail preference for new pending accounts (Gargron)
  • Fix upload progressbar when image resizing is involved (ThibG)
  • Fix block action not automatically cancelling pending follow request (ThibG)
  • Fix stoplight logging to stderr separate from Rails logger (Gargron)
  • Fix sign up button not saying sign up when invite is used (Gargron)
  • Fix health checks in Docker Compose configuration (fabianonline)
  • Fix modal items not being scrollable on touch devices (kedamaDQ)
  • Fix Keybase configuration using wrong domain when a web domain is used (BenLubar)
  • Fix avatar GIFs not being animated on-hover on public profiles (hyenagirl64)
  • Fix OpenGraph parser not understanding some valid property meta tags (da2x)
  • Fix wrong fonts being displayed when Roboto is installed on user's machine (ThibG)
  • Fix confirmation modals being too narrow for a secondary action button (ThibG)

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
  4. Clear cache:
    • Non-Docker: RAILS_ENV=production bin/tootctl cache clear
    • Docker: docker-compose run --rm web bin/tootctl cache clear

A note for those running ElasticSearch: In the v2.8.0 release, the schema of the ElasticSearch index was changed to support more complex search queries, however, this was accidentally left out of the upgrade instructions. To make the search work again, you need to run: RAILS_ENV=production bin/tootctl search deploy

Beware that this will take a significant amount of time, just like when you were installing the search for the first time.