Fediverse Account Migration

This article describes my findings about the current state of the art for Fediverse account migration at the time I wrote it. It does not cover all the issues of what Fediverse account migration should be. That's a much bigger and more complex topic. However, many people are not clear about the current situation so hopefully, this will help a little.

For the purposes of this article, the Fediverse is the ActivityPub-enabled microblogging part of it. And, specifically, I will be looking at three servers: Mastodon, Pleroma, and Calckey. This will give some idea about the support for account migration, but be aware that there is mostly no standard for this. Every server has its own way of doing it.

ActivityPub Move

The ActivityStreams 2 specification defines a Move message. The move operation is not part of the ActivityPub specification per se. The behavior is not standard and will vary a bit between server implementations. Some servers, like Mastodon, will also update followers automatically is certain conditions are met. In general, there is no automatic data transfer during the migration although, in some cases, some of your data can be manually migrated. That's the topic of the rest of this article.

Data Export and Import

Following

This is a list of account you follow.

Mastodon exports the list of accounts you follow as a CSV file with several headers to control notifications, language, and so on. Pleroma and CalcKey export and import a simple account list (one account per line).

I wasn't able to successfully import the Pleroma and CalcKey exports into Mastodon although I saw no related logged error messages in the Mastodon log. (Looking at the Mastodon source code it appears that it should have worked.)

Account Lists

Account lists are collections of accounts that can be used to create a custom timeline. Mastodon and Calckey export the list data as a CSV file with list name and account columns.

Oddly, Mastodon doesn't support importing its exported file. Calckey can import its file (or Mastodon's). Pleroma cannot export or import a lists file.

Account Blocks and Mutes

All three servers export these as a simple account list and can import the same format.

Domain Blocks

Only Mastodon exports and imports this data as a simple domain list.

Bookmarks

Only Mastodon exports and imports this data as a simple post URL list.

Posts and Media

Mastodon

Mastodon creates and export of posts, media and related data into the following directory structure.

├── actor.json
├── avatar.jpg
├── bookmarks.json
├── header.jpeg
├── likes.json
├── opt
 │   └── mastodon
 │       └── public
 │           └── system
 │               └── media_attachments
 │                   └── files

The JSON files are in ActivityPub (really ActivityStreams 2.0) JSON-LD format and includes the actor profile (including images) and collections for bookmarks and likes. The media_attachments directories have the media associated with the account posts.

This export cannot be imported back into Mastodon (or any other server, as far as I know).

Pleroma

Pleroma exports the following files:

  • actor.json
  • bookmarks.json
  • likes.json
  • outbox.json

These are in standard ActivityStreams 2.0 JSON-LD format. This export cannot be imported back into Pleroma or other servers. I didn't see any support for media export.

CalcKey

CalcKey supports exporting posts to a proprietary JSON format. There's an import button in CalcKey with options for CalcKey and Mastodon post dumps. However, at the time I wrote this, the Mastodon didn't work with my archive.

There are no media files in the exported archive, but CalcKey allows media download from its "Drive" storage. The downside is that there doesn't appear to be any bulk download capability so each file must be individually downloaded. The exported data has identifiers for attachments, but I didn't see any way to correlate these identifiers with the names of the media files in the CalcKey Drive. Given the lack of bulk download and the attachment identifier issue, I feel your post media is going to be effectively lost with this export.

Other Data

Followers are not exported. The follower instances are expected to be notified about the move and refollow you. For some servers, that will happen automatically. For others, the followers must manually re-follow you.

One type of data that I didn't see in any of the exports is account-related notes. These are the notes you can write and attach to specific account you follow or who follow you. These will be lost when migrating an account.

Conclusion

Expect account migration, especially between different server implementation, to be painful for the foreseeable future. You will effectively lose your history of posts, account notes and other potentially important information like accounts lists, followed hashtags and many of your followers. You can mitigate this risk to some extent by notifying your followers before the migration so they can follow the new account before the old one is deactivated.

Resources

Leave a Comment

Mastodon