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.
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.
- 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. - 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. - 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. - 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. - 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. - 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.
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.