When you move your Mastodon account from one instance to another, the platform is supposed to send notification emails to your followers on your old instance. Many users report that these migration notification emails never arrive. The root cause is often a misconfiguration in the old instance’s email delivery system or a missing verification step during the migration process. This article explains why Mastodon fails to send migration notification emails and how to identify and resolve the underlying issues.
Key Takeaways: Mastodon Migration Email Delivery
- Preferences > Account > Move to a different account: Initiates the official follower migration handshake that triggers notification emails.
- SMTP server configuration in .env.production: Incorrect SMTP settings prevent Mastodon from sending any outbound emails, including migration notifications.
- Email verification of the new account: The new account must have a verified email address before the migration process can send notifications.
Why Mastodon Fails to Send Migration Notification Emails
Mastodon uses a background job system to send emails when a user initiates an account migration. When you start the migration from your old account, Mastodon queues a job that sends notification emails to your followers. If the email delivery fails, the job retries several times before giving up. The most common reasons for failure are related to email server configuration, missing verification, or database lock issues.
Email Server Configuration Problems
Mastodon relies on an SMTP server to send emails. The SMTP settings are stored in the .env.production file on the server. Common misconfigurations include incorrect SMTP hostname, wrong port number, missing authentication credentials, or an unverified sender domain. If the SMTP server rejects the connection, Mastodon cannot deliver the migration notification email. Check the Mastodon server logs for entries like Net::SMTPAuthenticationError or Net::SMTPFatalError to identify SMTP issues.
Missing Email Verification on the New Account
Mastodon requires that the new account has a verified email address before the migration process can proceed. If you created the new account but did not click the verification link sent to your email, Mastodon will not send migration notifications. The system treats the new account as unverified and blocks the email queue for that account. Verify your new account’s email by checking your inbox for a message from the new instance. If you do not see the verification email, request a new one from the instance settings.
Database Lock or Job Queue Backlog
Mastodon uses Sidekiq to process background jobs, including email delivery. If the Sidekiq queue is backlogged or a job fails due to a database lock, the migration notification email may never be sent. Large instances with many active users can experience Sidekiq delays. Check the Sidekiq dashboard at /sidekiq on your instance to see if the email job is stuck or has failed. Restarting Sidekiq or clearing the queue can resolve this issue.
Steps to Diagnose and Fix Migration Email Delivery
Follow these steps to identify the cause of missing notification emails and resolve the problem.
- Check the new account’s email verification status
Log in to your new Mastodon account. Go to Preferences > Account. Look for a banner that says your email is unverified. If present, click the link to resend the verification email. Open the email and click the confirmation link. Wait 5 minutes, then check your old account to see if the migration email was sent. - Review the SMTP configuration on the old instance
If you are an instance admin, open the.env.productionfile located in the Mastodon directory. Verify the SMTP settings:SMTP_SERVER,SMTP_PORT,SMTP_LOGIN,SMTP_PASSWORD, andSMTP_FROM_ADDRESS. Ensure the port matches your SMTP provider (587 for STARTTLS, 465 for SSL/TLS). Test the SMTP connection by runningrails runner 'UserMailer.test_email("you@example.com").deliver_now'from the Mastodon Rails console. - Check the Sidekiq job status
Access the Sidekiq web interface athttps://your-instance.example/sidekiq. Look for failed jobs in the Retries or Dead tabs. Search for jobs with the classNotificationMailerorAccountMigrationMailer. If you see failed jobs, click the job to view the error message. Common errors includeNet::OpenTimeout(SMTP server unreachable) orActiveRecord::RecordNotFound(account deleted). - Restart Sidekiq and clear the queue
SSH into your Mastodon server. Runsudo systemctl restart mastodon-sidekiqto restart the Sidekiq service. If the queue is stuck, clear it by runningsudo -u mastodon bash -c 'cd /home/mastodon/live && RAILS_ENV=production bundle exec sidekiqctl stop'followed by a restart. This forces Mastodon to reprocess pending email jobs. - Manually trigger the migration email
If the automatic email fails, you can send it manually from the Mastodon Rails console. Runsudo -u mastodon bash -c 'cd /home/mastodon/live && RAILS_ENV=production bundle exec rails c'. Then executeold_account = Account.find_local('old_username@old_instance.social'); new_account = Account.find_local('new_username@new_instance.social'); AccountMigration.new(old_account, new_account).perform!. This bypasses the queue and sends the notification immediately.
If Mastodon Still Has Issues After the Main Fix
Migration Email Marked as Spam by Email Providers
Some email providers like Gmail or Outlook may flag Mastodon’s migration notification as spam. This happens when the instance’s sending domain lacks proper SPF, DKIM, or DMARC records. Ask your followers to check their spam or junk folders. As an instance admin, add SPF and DKIM records to your domain’s DNS settings to improve deliverability. Use a tool like MXToolbox to verify your DNS records.
Followers on Remote Instances Do Not Receive the Email
Mastodon sends migration notification emails only to followers on the same instance as the old account. Followers on other instances receive a notification through the ActivityPub protocol instead of email. If your old instance has few local followers, the email notification will appear to be missing because it was never sent to remote users. Check the old instance’s local follower count in Preferences > Account > Followers and following.
Email Job Stuck in a Loop Without Error
In rare cases, the Sidekiq job for the migration email enters an infinite retry loop without logging an error. This occurs when the job encounters a transient network issue. Restarting Sidekiq as described in Step 4 usually breaks the loop. If the problem persists, delete the old migration job from the Sidekiq queue and initiate the migration again from the old account’s settings.
Mastodon Migration Email Delivery: Self-Hosted vs Managed Instances
| Item | Self-Hosted Instance | Managed Instance |
|---|---|---|
| Email server control | Full control over SMTP settings in .env.production | Relies on instance admin’s email configuration |
| Common failure point | Misconfigured SMTP host, port, or credentials | Instance admin has disabled outbound email |
| Diagnostic access | SSH and Rails console available to admin | Limited to web interface; must contact support |
| Email deliverability | Admin must set up SPF, DKIM, DMARC | Managed provider handles DNS records |
| Recovery time | Minutes to hours depending on admin expertise | Hours to days depending on support queue |
Understanding these differences helps you choose the right troubleshooting path. Self-hosted instance users can directly edit configuration files. Managed instance users must submit a support ticket to the instance admin. In both cases, verifying the new account’s email and checking Sidekiq logs are the first steps.