How to Audit a Migrated Bluesky Account for Missing Posts
🔍 WiseChecker

How to Audit a Migrated Bluesky Account for Missing Posts

When you migrate your Bluesky account to a new handle or domain, some posts may not transfer correctly. This can happen due to server delays, incomplete backup files, or DNS propagation issues. You need a methodical way to compare your original account content with the migrated version. This article explains the auditing process step by step so you can identify and restore any missing posts.

Key Takeaways: Audit a Migrated Bluesky Account for Missing Posts

  • Settings > Account > Export My Data: Downloads a JSON file containing all your posts, likes, and follows for comparison.
  • Bluesky API endpoint com.atproto.sync.getRepo: Retrieves the full repository from the new handle to check post integrity.
  • Cross-reference post timestamps and content hashes: Identifies gaps between the backup and the live account.

Why Posts Go Missing During Bluesky Account Migration

Bluesky account migration changes the handle or domain associated with your account. When you initiate a migration, the platform creates a new repository for the new handle. Posts are copied from the old repository to the new one. This process can fail for three main reasons:

Server Replication Delays

Bluesky uses the AT Protocol, which relies on federated servers. When a migration occurs, the old server must replicate all posts to the new server. If the replication queue is backed up, some posts may not arrive at the new location. This is especially common during peak usage hours.

Incomplete Backup Export

Before migrating, you may have exported your data using the built-in tool. If the export was interrupted or the file was corrupted, the backup will not contain all your posts. You cannot rely solely on the backup to verify a complete migration.

DNS Propagation Issues for Custom Domains

If you migrated to a custom domain, DNS changes must propagate across the internet. During this time, Bluesky servers may not recognize the new handle. Posts created before the migration may appear missing until DNS fully updates.

Steps to Audit Your Migrated Bluesky Account for Missing Posts

Follow these steps to compare your original account data with the migrated account. You will need a computer with a web browser and a text editor that can handle large JSON files.

  1. Export Your Data from the Old Account
    Log into the old Bluesky account using the original handle. Go to Settings > Account > Export My Data. Click the download button to save the JSON file. Name it old-export.json. This file contains all your posts, likes, follows, and block lists.
  2. Export Your Data from the New Account
    Switch to the new handle or domain. Repeat the same export process. Save the file as new-export.json. Make sure both exports cover the same date range.
  3. Open Both Files in a JSON Viewer
    Use a tool like Visual Studio Code, Notepad++, or an online JSON formatter. Load both files. Locate the array labeled posts or records, depending on the export format. Each entry should contain a createdAt timestamp and a text field.
  4. Compare Post Counts
    Count the total number of posts in each file. If the new export has fewer posts, you have missing content. Note the exact difference. For example, if the old export has 1,200 posts and the new has 1,180, you are missing 20 posts.
  5. Identify Missing Posts by Timestamp
    Sort both arrays by createdAt in ascending order. Look for gaps in the new export timeline. A gap of more than 24 hours with no posts suggests a batch was not transferred. Write down the missing date ranges.
  6. Use the Bluesky API to Verify a Sample
    Open a terminal or API client like Postman. Send a GET request to https://bsky.social/xrpc/com.atproto.sync.getRepo?did=YOUR_NEW_DID. Replace YOUR_NEW_DID with the decentralized identifier of your new account. You can find your DID in Settings > Account > Advanced. The response contains a CAR file with all repository records. Compare the post count here with your backup.
  7. Check for Duplicate or Truncated Posts
    In the new export, scan for posts that have the same timestamp as a post in the old export but with different text. This indicates a partial transfer. Also look for posts that end abruptly or contain garbled characters. These posts were likely corrupted during migration.

If Posts Are Still Missing After the Audit

Missing Posts Do Not Appear in the New Feed

If your audit shows that posts are present in the backup but not visible on the new profile, the issue is likely a cache or indexing delay. Wait 24 to 48 hours. Bluesky servers may need time to index the migrated content. After waiting, check the profile again. If posts still do not appear, contact Bluesky support through the app or via the official help center.

Posts Appear in the Backup but Not in the API Response

This indicates that the posts were never transferred to the new repository. You may need to re-migrate your account. Go to Settings > Account > Migration. Click Start Over. This will trigger a fresh replication from the old server. Follow the same audit steps after the new migration completes.

Custom Domain Posts Are Invisible to Others

If your custom domain DNS records are not set correctly, other Bluesky servers cannot fetch your posts. Verify your DNS settings. The domain must have a TXT record with the value did=YOUR_DID. Also check that the _atproto subdomain has a TXT record pointing to your DID. Use a DNS checker tool like dnschecker.org to confirm propagation.

Bluesky Account Data Export vs API Repository Check

Item Data Export (Settings > Export) API Repository Check
Data format JSON file with posts, likes, follows CAR file with raw repository records
Ease of use Simple, requires no coding Requires API call and CAR file parsing
Completeness May omit some metadata Includes all records including deleted ones
Speed Instant download Depends on repository size
Best for Quick count and timestamp comparison Deep verification of post integrity

After completing the audit, you can confidently confirm whether your migrated Bluesky account has all posts intact. If you found missing content, re-migrate the account or adjust DNS settings for custom domains. As an advanced tip, automate the comparison by writing a script that hashes each post text and compares the two export files. This saves time if you have thousands of posts.