Vanessa and I went on a weekend trip to Orange County with Dominic and wanted to relax by watching a movie when he was napping, and the easiest vehicle for this seemed to be our iPad. What could go wrong? Lots, it turns out.
I cruised over to the increasingly inaccurately named iTunes store and found Safety Not Guaranteed which looked interesting so clicked Buy, waited for it to start downloading, watched the progress bar long enough to verify it looked like it would take about 40 minutes to download, and took Dominic out for a walk so he’d fall asleep, with the idea that in 40 minutes we’d have a sleeping baby and a watchable movie.
Dominic behaved as I’d hoped; the iPad didn’t; after about an hour I grabbed the iPad to find absolutely no sign of the movie. The Videos app said “no videos, but you can cruise over to the store to buy one”. The iTunes store app didn’t have any downloads in progress, and going back to the Purchases tab, it had the cloud icon next to our movie. Upon clicking that, it told me it can’t download it because there’s not enough storage available.
So apparently when I first purchased the movie, there was enough storage to download it, but then something went wrong with the download, it silently canceled the download without showing me any error message whatsoever, and now there’s not enough space for it? That’s hard to explain, but whatever, there’s nothing to do but try to clear space and download it again. I go to Settings: General: Usage and look at the breakdown of what’s using how much space, and the individual app usage doesn’t add up to anywhere close to what it says is used, but I don’t have many options here. So I deleted Infinity Blade to free up a gigabyte, invoked the download, and waited another 40 minutes while it downloaded the movie again. At the end of the download, the iPad spent another 5 minutes saying “processing”, then gave me a generic error message, and kicked me back to the state where the movie is not available for playback but is available for download. And again trying to download it says there’s no space available, and going back to Settings: General: Usage, there’s 2.7GB (the size of the movie) less than there had been when I started the download. Something very weird is going on. I can’t fix this problem on the iPad itself (so much for the post-PC era: you need a PC to configure or troubleshoot your post-PC device!) and now it’s been 2 hours and we don’t have time to watch a movie anyway.
When I got back home from the trip, I plugged the iPad into my Mac and launched iTunes and iTunes told me that there’s 10GB of “other” content. Given that this is the 16GB model (whose actual capacity is 13.8GB; go figure), that doesn’t leave room for very many 2.7GB movie downloads. That also explains why the total usage was so much higher than the sum of the space used by each app. But it doesn’t at all help explain what “other” actually means; the Internet isn’t much help here either. Trying to get this to go away or at least explain itself, I tried syncing the iPad with the Mac a couple times. The first thing I got for my trouble was that iTunes decided I had 7.1GB of video on the iPad, and now I’m over capacity by 6GB (this without me having added any additional content to the iPad, actually). The second thing I got for my trouble was that iTunes decided to sync that video content back to the Mac, which took all night, and resulted in 70GB of corrupt data: it created 3 .m4v files which were actually directories containing what looks like the entire iPad filesystem, 2 of which were named after the movie that caused/revealed all this trouble (Safety Not Guaranteed) and the 3rd of which was an episode of Breaking Bad which I didn’t realize was on the iPad in the first place. I’ll repeat: what got synced back to my computer in each case was not a valid .m4v file, but an entire directory structure whose top level ended in “.m4v”; one of these was 10GB, one was 20GB, and one was 40GB. Clearly, these weren’t actually on the iPad, and no, my Mac didn’t really like the resulting 70GB of garbage data either. (Something created what should have been .m4v files on the iPad as symbolic links to /, maybe? The entire directory listing is here if anyone finds this edifying.)
Back to reality. Apparently the fix for this runaway “Other” usage is to back up the iPad, then restore it from backup. So I did this, and after half an hour, I had a working iPad with 2.2GB of apps, 3.3GB of “other”, and 7.3GB free. That’s still not very satisfying, though — what is this 3.3GB and how do I get it back?
So then I tried completely erasing and restoring the iPad (restoring the firmware, not just the user data, which is a similarly named but differently implemented operation in iTunes). This worked a little too well — the iPad came back with only 0.62GB of “other” and 13.2GB free, because it has no apps installed. Um, that’s partially my fault, because I’d turned off syncing of apps in iTunes (in my experience, leaving app syncing enabled makes syncing take much longer and sometimes forever, and it shouldn’t be necessary in the post-PC mode where you manage the device on the device itself); I don’t find it obvious, but apparently if you disable the syncing of apps in iTunes, that also means that local restores via iTunes don’t restore apps either.
But oh whatever, I have a recent iCloud backup which should have all the apps backed up. I do another complete erase of the iPad, and this time when it boots up, instead of driving the restore from iTunes on the Mac, I walk through the on-device setup and select my iCloud backup. It chews for a while, reboots, and then gets stuck forever at the boot screen (Apple logo with progress bar). Apparently I’m not the only one with this problem either. I tried again and got the same result.
So apparently the iCloud backup is corrupt and can’t be used; the local backup works but leaves me with extra work to do.
In the big picture, this is just another internet rant about a bug which happened to one person and probably isn’t generally applicable, and while I can describe it as 6 separate problems (iPad aborts my download without showing an error message, iPad downloads movie to bit bucket and won’t play it back, iPad runs out of space, iTunes can’t sanely describe space usage, iTunes syncs garbage from iPad back to my computer, iCloud backup is corrupt) it’s likely all one root cause, where some data structure got corrupted and caused the rest of the failures downstream from there. And computers are complicated, and not that expensive given the complexity, and hard and expensive to get right.
But what’s frustrating about this is that Apple’s moved the openness needle pretty far back toward walled garden, in the name of preventing problems. Problems like malware, yes, but also problems due to misconfigurations, and problems due to third party software that causes finger-pointing instead of solutions. This was all first-party software; Apple content in Apple software on an Apple device synced and controlled from another Apple device. No jailbreaking, and I didn’t even commit the minor sin of trying to run iTunes on Windows. This is the case that we should be getting right; that’s the benefit that we’re paying the walled-garden cost for.
Apple is often applauded for bringing us technology that “just works”, but I’ve been having more and more experiences lately that are pretty far from “just works”. The moral of the story is that Apple’s devices are computers just like other computers; they’re still a stack of fiendishly complex hardware and software components; also with iOS in version 6 and iTunes in version 10.7 there’s a lot of untestable legacy cruft. “Just works” sounds nice, but we’re not really there yet, or maybe we’ve been there but don’t know how to stay there for long.