This is just a quick update among all of the other insanity that is going on around here, regarding my iPhone 4 upgrade to iOS5. I tried to perform the upgrade several times, even after rebooting and removing other USB devices (which have caused these problems during upgrades before), but I kept getting this error:

iPhone cannot be restored, unknown error occurred (3200)

As it turns out, the solution is quite simple, and is in fact shown on the Apple support site that appears if you click the “More information” button. But you’re not going to like it.

This is what the Apple support page says, if you scroll down and pay attention to the range of values, and not just explicit numbers, which don’t yet seem to be updated:

Errors 3000-3999 (3002, 3004, 3013, 3014, 3018, 3164, 3194, and so on): Error codes in the 3000 range generally mean that iTunes cannot contact the gs.apple.com server on ports 80 or 443. This may be because out-of-date or incorrectly configured security or firewall software is interfering, an old version of iTunes is installed, an entry in your hosts file redirecting requests to gs.apple.com (see error 1004 above), or because of your Internet proxy settings. If you are using a proxy, try without using one or with a known-good network. If that does not resolve the issue, follow iTunes for Windows: Troubleshooting security software issues. Error 3014 may indicate that you need to free up more disk space on the computer before trying to restore again. Error 3194 most likely indicates you do not have the latest version of iTunes installed Update to the latest version of iTunes.

Basically, when iTunes says it’s going to verify your download against their servers, they apparently mean it. I’m not sure why it does this, but it seems to need to call home to verify something. And if it can’t, then it won’t update your iPhone, iPod, or iPad, returning the error you’ve seen.

Considering the volume of users trying to upgrade today, I’m not surprised this is happening. So what’s the solution? Keep trying to upgrade until iTunes is able to call home and make that connection. When it finally does, it’ll go smoothly. Sadly, there’s not much you can do about Apple not throwing enough server resources at the upgrade to make it smooth for everyone.

Update:

It turns out you can download the firmware manually, and then tell iTunes to use the file you downloaded instead of downloading the file again. Of course, the only benefit to this is that your browser may be more reliable at resuming or not timing out during the download. But you’d still have the same duration of download – it won’t happen any faster. I’m currently trying this with the iPad firmware, and my browser says it’ll finish downloading in 10 hours! This is obviously significantly more time than the 2 minutes my iPhone took to download it earlier today when the servers were presumably less busy.

Here are the files you can download directly from Apple’s servers. Be sure to choose the file appropriate for your device:

After you’ve saved the file, you can start iTunes and click the Update button while holding down the Option key (on Mac) or the Shift key (on Windows). This will allow you to select the file you’ve downloaded instead of downloading the copy of the firmware again from Apple.

I’m not sure if this will entirely circumvent the 3200 or 3002 errors, but it will prevent you from having to download the whole firmware over again should anything go wrong inside of iTunes.

I’m going to try this for Berta’s GSM iPhone 4 and iPad, and the kids’ 4G iPods, so I’ll let you know how it turns out.