## How to fix an iPod reboot loop

The classic (pre-Touch) iPods from Apple are pretty good portable jukeboxes, but they have a critical flaw in how they handle certain database problems; rather than try to fix the error, they just reboot immediately, getting stuck in a boot loop. I have seen this happen on several generation of iPod, including the 5G, the 6G/Classic, and several revisions of the iPod Nano.

There are a number of things that can cause this problem, such as the COMM (comment) field exceeding the iTunes hard limit of 254 characters, or due to invalid UTF-8 byte sequences in ID3 tags (which are pretty common in the wild since ID3’s encoding standard is a bit ad-hoc and nobody can even agree on what it’s supposed to be).

Sometimes you can find the culprit by exporting your iTunes library as XML and then running an XML validator on it – this will find the most egregious encoding issues – but often you simply have to search through your library to find the files which are causing your iPod to reboot constantly. Here is a simple procedure for that.

First, when your iPod gets stuck in a reboot loop, hold down the center button and play button until it goes into Disk Mode. In iTunes, create two playlists, one called “break test” and one called “break candidate.” Drag the contents of your currently-syncing playlist(s) (or your library, if applicable), including any podcasts you may be subscribed to, into “break candidate” (this requires that you are syncing with playlists or the whole library, obviously; if you’re manually managing your iPod, this won’t quite work for you). Set the iPod to sync ONLY the “break test” playlist.

Next, do the following steps, in order:

1. Go to the “break candidate” playlist, and select the first half of the files (click on the first one, scroll halfway down, then shift-click on the middle one; you don’t have to be exact or anything though)

2. Drag the selected playlist entries into the “break test” playlist, and then delete them from the “break candidate” playlist

3. Update the iPod, and wait for it to finish

4. On the iPod, hold down the center and menu keys for 5 seconds to make the iPod reboot

5. If the iPod fails to boot:

1. Move the first half of the files from the “break test” playlist into the “break candidate” playlist (i.e. drag them to “break candidate” and then delete them from “break test”)

2. If there are only a few songs left in “break test,” go through them to see if there’s any weird characters in the song info. If so, edit the song info and fix it.

3. Hold down center/play to put the iPod into disk mode

4. When the iPod finishes syncing, hold down center/menu to reset it

5. Repeat the above four instructions until the iPod boots

6. If the iPod boots successfully: everything in the “break test” playlist is fine, so clear out that playlist (select-all, then delete), and then go back to step 1. Repeat until both “break test” and “break candidate” are empty.

Basically, what you’re doing here is taking half of the files and seeing which ones are good. Once an entire set is good, you don’t need to test it anymore; if a set is not good then there’s at least one bad file in it, and so you narrow it down until you fix the problem. This process is pretty tedious, but it’s a lot less tedious than going through each file individually, as long as there’s more good files than bad files. If there’s at least as many bad files as good files, it’s better to just move files 10-20 or so at a time from “break candidate” to “break test.”

Even better would be if Apple didn’t leave this horrible bug in the iPod to begin with, though…