If you’ve run across this error when trying to restore a site via the iThemes ImportBuddy tool:
ERROR #83893a: unable to decode JSON restore data ``. Restore halted.
Here are a couple steps you can follow to diagnose the issue:
- Verify the source of the issue – Look in your browser’s debug console and check for something like “Uncaught TypeError: undefined is not a function”. Jump to the source of the error. In my case it was the “.on()” function not being declared. This is a dead giveaway that something wonky is going on with the loaded version of jQuery.
- Check the loaded version of jQuery – Run this code in your debug console to verify the current version:
If that returns anything below 1.11.x you are viewing an old version of the jQuery library. You can double check this by browsing directly to the included jquery.js file. The URL should be something like: http://YOURSITEURL/importbuddy/js/jquery.js
- Check the loaded version of jQueryUI Tooltip – This was another script that was loading improperly for me as well. Browse directly to the tooltip.js file by using a URL like: http://YOURSITEURL/importbuddy/js/tooltip.js
What appears to be causing these issues is the hosting provider has a cached version of those specific files and is serving that rather than the actual files on your server.
One possible workaround is to start the ImportBuddy process and clear the site’s cache after the /importbuddy/ directory has been created during the first step of the import process but before it has restored any files. This can be tricky since ImportBuddy will put your site in to maintenance mode once it starts so you’ll have to delete the “.maintenance” file if your hosting provider requires you to be logged in to WordPress in order to clear the cache (this is the case with GoDaddy Managed WordPress hosting). After you’ve cleared the cache, restart the import process and verify that the correct files are now showing up.
If clearing the cache does not fix it there’s a more heavy-handed fix that will work but requires editing the ImportBuddy code:
- Change the plugin version – Changing the plugin version to a much higher number will also cause the server to not use the cached version. You can do this by opening the ‘/importbuddy/init.php’ file on your destination server and set the version declaration to something like 55555. Once you’ve done this, restart the ImportBuddy process and verify that the scripts are loading correctly.