projects | github | twitter | rss | contact

If an app crashes in a forest and the bug report can't be sent out, did it ever crash?

posted to writings on feb 26th, 2015 with tags ios, nerd, and pushover, last updated on feb 26th, 2015

A new version of Pushover is finally out today for iOS and Android. This has been in development for a few months, with lots of work being done in both apps, the website, the API, and writing documentation.

Tangential: It took a few weeks longer than expected because Apple rejected the app update claiming that it "mentioned Android", which is forbidden. And by "mentioned Android" I mean the app had a WebView that showed a page on the Pushover website (with headers and footers stripped out) and with enough clicking around on various links, it was possible to navigate to other pages on the website such as our device clients page that mentions Android. I wonder if they've ever tested Chrome on iOS and typed in "Chrome on Android" on Google.

Once the webpage was further mangled to prevent people from clicking out of it, they rejected the app again asking questions about Pushover's trial period and stating that they were going to have someone from Apple call me. A few days later, I spoke with someone at Apple who told me that I had to change Pushover's trial period from 5 days to 7 days. No explanation was given, of course, and I have no idea where this rule came from or why they are suddenly enforcing it now after Pushover has had a 5-day trial for nearly a year it's been like that for a year with many updates in between.

Anyway, so this update has been in the works for a few months and one of the bugs I fixed early on was that crash reports were not being sent to me like they used to. Previously when the app would crash, QuincyKit would write out an automated crash report and save it to the filesystem. When the app started up again, it would look for old crash reports and send them to Pushover's website where I could "symbolicate" them and figure out where in the code the app crashed on the user's device.

Fast forward a few months to now when I've completely forgotten about this crash reporting bug and the new app update has just been released. Within an hour, I started seeing a bunch of crash reports come in from different OS versions and IPs, which triggered some panic and stomach churning as I imagined this new update horribly crashing and burning for all of these users that have just updated.

It was not until many minutes later when I took a closer look into the crashes that I noticed the build versions of the binaries were many months old. Apparently these old crash reports had been sitting around on users devices for months not being able to be sent out, until they upgraded to this new version which dutifully sent them all out on startup.

Comments? Contact me via Twitter or e-mail.