Mastodon Error ‘Statuses Could Not Be Downloaded’ on Re-Import: Fix
🔍 WiseChecker

Mastodon Error ‘Statuses Could Not Be Downloaded’ on Re-Import: Fix

When you export your Mastodon archive and try to re-import it into the same or a different instance, the process may fail with the error message “Statuses could not be downloaded.” This error typically occurs because the archive file is malformed, the import server cannot reach the original instance, or the archive references deleted or private statuses. The re-import feature is designed to restore your public posts, but it relies on the original instance being online and the archive containing valid JSON data. This article explains the root cause of this error, provides step-by-step fixes to resolve it, and covers related failure patterns you may encounter.

Key Takeaways: Mastodon Status Re-Import Error Fix

  • Settings > Import and export > Import: The exact location where you upload your archive file to restore statuses.
  • Archive JSON validity check: The archive’s outbox.json and actor.json files must be well-formed and contain valid URLs to downloadable statuses.
  • Original instance availability: The import server must be able to reach the original instance’s ActivityPub endpoints to fetch each status.

ADVERTISEMENT

Why the “Statuses Could Not Be Downloaded” Error Appears

The re-import process in Mastodon does not upload your statuses directly from the archive file. Instead, Mastodon reads the archive’s outbox.json file, which contains a list of status IDs and their original URLs. The server then attempts to fetch each status from the original instance using ActivityPub. If any step in this chain fails, the entire import stops and shows the error.

Malformed Archive Files

When you export your data from Settings > Import and export > Export, Mastodon generates a ZIP file containing JSON files such as outbox.json, actor.json, and media attachments. If the export process was interrupted, the ZIP may be incomplete or the JSON files may contain syntax errors. A single missing comma or unclosed bracket in outbox.json prevents the import parser from reading the status list.

Original Instance Unreachable

The import server must contact the original instance to download each status. If the original instance is offline, has changed its domain, or blocks the import server’s IP address, the fetch fails. This is the most common cause when migrating from a small or shutdown instance.

Deleted or Private Statuses

The archive may include statuses that were deleted after export or are marked as followers-only. The import server cannot fetch deleted statuses because the original instance returns a 404 error. Private statuses return a 403 error. Mastodon treats both as failures and shows the download error.

Steps to Fix the Status Re-Import Error

Follow these steps in order. Test the import after each step. If the error persists, move to the next step.

  1. Re-export the archive from the original instance
    Log in to your original Mastodon instance. Go to Settings > Import and export > Export. Click the Export button for “Your archive.” Wait for the download to complete without closing the browser. Do not rename or manually edit any files inside the ZIP.
  2. Verify the archive file integrity
    Open the ZIP file with a tool like 7-Zip or the built-in Windows archive utility. Extract the files and open outbox.json in a text editor. Confirm the JSON starts with an opening curly brace and ends with a closing curly brace. Use a JSON validator website to check for syntax errors. If errors exist, delete the archive and re-export from step 1.
  3. Check if the original instance is online
    Open a browser and go to the original instance’s domain (for example, mastodon.social). If the page loads, the instance is reachable. If you see a timeout or a server error, wait for the instance to come back online before attempting the import.
  4. Remove deleted and private statuses from the archive manually
    Open outbox.json in a text editor. Locate the orderedItems array. Each entry has an object with an id field (the status URL) and a to field. Remove any entry where to contains “https://www.w3.org/ns/activitystreams#Public” but the status returns a 404 or 403 when visited. To test, paste the id URL into a browser while logged out. If the status does not display, delete the entire entry from the array. Save the file and re-ZIP the archive.
  5. Change the import domain in outbox.json
    If you moved your account to a new domain, the archive may contain old status URLs. Open outbox.json, find every occurrence of the old domain, and replace it with the new domain. For example, replace “https://oldinstance.social” with “https://newinstance.social”. Save the file and re-ZIP the archive.
  6. Upload the corrected archive
    Go to Settings > Import and export > Import on the target Mastodon instance. Select the file type “Mastodon archive.” Click the Choose File button and select your corrected ZIP file. Click Upload. Wait for the import to complete. Check the import log for any remaining errors.

ADVERTISEMENT

If the Error Still Appears After the Main Fix

Some issues require additional troubleshooting beyond the standard fix. The following scenarios cover the most common edge cases.

Import Fails on a Large Archive with Many Media Attachments

Mastodon has a server-side limit on the size of uploaded archives, typically 50 MB. If your archive exceeds this limit, the import stops without a specific error. To reduce the size, delete the media folder inside the ZIP before uploading. Statuses without media still import correctly. After import, you can re-upload media separately using the media upload API if needed.

Import Succeeds but Statuses Show as Deleted on the New Instance

This happens when the archive contains statuses that were deleted on the original instance before export but were still included in the archive. Mastodon imports them as deleted statuses. To avoid this, delete any statuses you do not want on the original instance before exporting. After import, delete the unwanted statuses manually on the new instance.

Error Persists Even After Correcting the Archive

The target instance may have a misconfigured ActivityPub fetch timeout. Contact your instance administrator and ask them to check the Mastodon logs for the error “Fetching status failed: Net::ReadTimeout.” The administrator can increase the timeout value in the environment variable FETCH_TIMEOUT (default 10 seconds). Alternatively, try importing during off-peak hours when the original instance is less loaded.

Item Original Archive Corrected Archive
JSON syntax May contain errors from interrupted export Validated and fixed with a JSON validator
Status URLs Point to old or offline domain Updated to new domain if applicable
Deleted statuses Included and cause fetch failures Removed from orderedItems array
Private statuses Included and return 403 errors Removed from orderedItems array
Archive size May exceed 50 MB limit Media folder removed to stay under limit

You can now successfully re-import your Mastodon archive by ensuring the JSON is valid, the original instance is reachable, and the archive contains only public statuses. After a successful import, verify that your statuses appear on your profile timeline. For large archives, consider importing in batches by splitting the outbox.json file into smaller arrays. As an advanced tip, use the Mastodon API endpoint POST /api/v1/import with a Bearer token for programmatic imports if the web interface continues to fail.

ADVERTISEMENT