How to Verify a PDS Migration Completed Correctly
🔍 WiseChecker

How to Verify a PDS Migration Completed Correctly

After migrating your Bluesky account to a new Personal Data Server, you need to confirm the move was successful. A failed migration can leave your account inaccessible or cause your posts and follows to disappear. This article explains the exact steps to check that your PDS migration finished correctly. You will learn what to look for in your account settings, how to test basic functions, and what to do if something is wrong.

Key Takeaways: Verifying Your Bluesky PDS Migration

  • Settings > Account > Handle: Shows the current PDS domain; must match your target PDS.
  • Settings > Account > Moderation: Check that your moderation lists and mutes are intact.
  • Test post and reply: Create a new post and reply to confirm write operations work on the new PDS.

What a PDS Migration Actually Changes

A Personal Data Server is the server that stores your Bluesky account data, including your posts, likes, follows, and direct messages. When you migrate to a different PDS, your account handle and all your data move from one server to another. The migration process transfers your entire repository, which is a Merkle Search Tree that contains every record you have ever created. The new PDS becomes the authoritative source for your account. If the migration is incomplete, some records may be missing, or the handle may still point to the old PDS. Bluesky uses a cryptographic verification mechanism to ensure that the data on the new PDS matches the data on the old PDS. This mechanism checks the root hash of your repository. If the hashes do not match, the migration is considered failed and your account may be stuck in a transitional state.

What Data Is Transferred

All of the following data moves with your account during a PDS migration:

  • Your profile information, including display name, description, and avatar
  • Every post you have ever made, including deleted posts that are still in the repository
  • All likes, reposts, and replies
  • Follows and lists
  • Moderation settings, such as muted words and blocked accounts
  • Direct messages (if your PDS supports them)

Steps to Confirm Your PDS Migration Is Complete

Follow these steps in order. If any step fails, your migration may not be finished.

  1. Check your handle resolution
    Open the Bluesky app or website. Go to Settings > Account > Handle. The domain shown under “Handle” must match the domain of your target PDS. For example, if you migrated to my-pds.example.com, the handle should show @yourhandle.my-pds.example.com or a custom domain pointing to that PDS. If the handle still shows the old PDS domain, the migration did not complete.
  2. Verify your account moderation settings
    Go to Settings > Account > Moderation. Check that your muted words, muted accounts, and blocked accounts are all present. If any of these lists are empty when they should not be, data may have been lost during the migration. You can also check your moderation lists by going to Settings > Moderation > Moderation Lists.
  3. Create a test post
    Compose a new post with a unique phrase, such as “Migration test [current date]”. Post it and then refresh your feed. The post should appear immediately. If it does not appear, the write operation may have failed on the new PDS. Wait 30 seconds and refresh again. If the post still does not show, the migration is likely incomplete.
  4. Reply to an existing post
    Find any post from another user and reply to it. Your reply should appear in the thread within a few seconds. If your reply does not appear, the new PDS may not be syncing correctly with the Bluesky relay network.
  5. Check your follower and following counts
    Go to your profile. Tap the number of followers and then the number of accounts you follow. Both counts should match what you had before the migration. If the numbers are lower, some relationships may not have transferred. You can cross-reference with a third-party tool like bsky.app profile viewer to verify the counts.
  6. Inspect your repository using the Bluesky API
    For a thorough check, use the Bluesky API to retrieve your repository. Open a browser and visit https://public.api.bsky.app/xrpc/com.atproto.repo.describeRepo?user=yourhandle.bsky.social — replace yourhandle.bsky.social with your actual handle. The response should include the handle field set to your custom domain or PDS domain. It also includes a did field which should match your Decentralized Identifier. If the handle field is wrong, the migration is not complete.

Common Post-Migration Problems

Your handle still shows the old PDS domain

This usually means the DNS records for your handle have not been updated. If you use a custom domain, go to your DNS provider and verify that the TXT record for _atproto.yourdomain.com points to your new PDS. The value should be did=did:plc:yourDID where yourDID is your account’s DID. If you use a subdomain on the PDS, the PDS operator may need to update the handle assignment on their end.

Your posts are missing or truncated

If some posts are missing, the repository transfer may have been interrupted. Contact your new PDS operator and ask them to check the migration logs. They can re-run the migration process if needed. Do not delete your old PDS data until the migration is confirmed complete.

You cannot log in after migration

If your password does not work on the new PDS, you may need to reset it through the new PDS’s login page. Some PDS operators require you to set a new password after migration. Check the email you used for your Bluesky account for instructions from the new PDS operator.

Comparing PDS Migration States

Check Successful Migration Failed Migration
Handle domain Points to new PDS Still points to old PDS or shows error
Moderation lists All lists present Lists empty or missing entries
Test post Appears immediately Does not appear or appears after long delay
Follower count Matches pre-migration count Lower than pre-migration count
API describeRepo Returns correct handle and DID Returns old handle or incorrect DID

You can now confirm your Bluesky PDS migration by running through the six verification steps in order. Start with the handle check in Settings > Account > Handle. If you find any discrepancies, contact your PDS operator immediately with the specific failure details. For advanced users, the Bluesky API endpoint com.atproto.repo.describeRepo provides the most authoritative confirmation of your migration status.