When one bug leads to another

For a long while now (since iOS 8.0) Reminders.app on my iPad refused to work. I could add Reminders via Siri, view them via Fantastical, but opening the app was impossible. It would jump straight back to the Springboard upon launch.Subsequent iOS updates didn’t solve the problem, and neither did toggling iCloud Reminders off/on in Settings . Since I don’t have any real use for the app (I use OmniFocus), I ignored the issue after a while. A clean install of the iPad probably would have solved it, but considering the amount of work is involved with a clean install, I didn’t bother.

But last week, after installing iOS 9 and demoing the new multitasking feature to a colleague, I accidentally chose the reminders app as a secondary app, which immediately crashed and took the entire multitasking system down too. Rebooting, force-rebooting, no matter what I tried, if I triggered the multitasking interface, the iPad would fall back to the Springboard.

While watching the Optimizing Your App for Multitasking on iPad in iOS 9 tonight, I came across a section where they talked about how a crash in the secondary app can trigger a memory warning which results in the primary app, or even Springboard itself crashing. This scenario was so similar to what I experienced on my iPad, and annoyed by a big part of my iPad now not working, I decided to solve the Reminders issue once and for all. Sure, the Springboard crash is probably caused by a bug in the iOS 9 beta, but even so, it’s annoying.

After reading through the crash logs on my iPad (Settings > Privacy > Diagnostics and Usage >  Diagnostics & Usage Data), I discovered not only a lot of the expected Reminders crashlogs, but also, surprisingly, dozens of Calendar crashlogs. I took a gamble and removed all Calendar and Reminder data from my iPad (not only iCloud, but also the Exchange stuff from the office), force-quit both apps, force-rebooted the iPad and… Reminders worked again.I then gradually reenabled syncing for reminders and calendars and everything kept working like a charm. Even Multitasking.

Why do I write this down? Because it’s a good lesson.When working with software, often a bug isn’t caused by the program that crashes, but by something else entirely.In my case it was a rogue event in the office’s Exchange calendar that caused Reminders.app to crash: The event was synced to Reminders, but was an agenda-item according to its meta-data, which confused the heck out of Reminders.app. Deleting and resyncing everything fixed the issue quickly. (Yes, reading logs is useful..)

What I should have done a year ago: go through those crash logs on my iPad. I didn’t do it because I didn’t care for Reminders.app and it takes a lot of time. But my laziness resulted in a bigger crash a year later. So now I wonder: what other small bugs did I ignore, and will they come back to haunt me someday?