- Corrupted Database
- Upgrade error
- Push Notification Generation occurring before upgrade is done
Most reports we've seen with startup crashes are due to a corrupted database. You can see this when Auto Crash Detection comes on and you go to the Help->Logging window and see a lot of these kind of messages *** Assertion failure in -[Database currentSchemaVersion].
Alternatively the other reason we've seen for this is due to Push Alarms trying to be generated during a slightly longer Database Upgrade process: This one I have no guaranteed workaround, but I believe if you go to iPhone Settings->Notifications and turn OFF Pocket Informant Push notifications and then restart Pocket Informant that will fix the problem. Then you should be able to turn then back on.
Now if its a database corruption issue, the good news is that we make a backup before the upgrade so you're all right.
Once you see that message saying that Pocket Informant has crashed four times, then for that one launch, PI is in a mode where it shuts off all tabs that will activate the database. This is to let you backup, erase, restore, etc a database in case something has happened to it that is causing the crashes. The one exception (and is fixed in 1.1.1) is that our General Settings section tries to access the database and will fail at this point because the database was not opened.
The two possibilities for the database not being opened and the crash is that the local calendar database either got corrupted or it did not complete the upgrade to 1.1 properly. This should be a very rare situation - and while we have had several thousand customers upgrade to 1.1 without issue, we've seen a couple reports like this now. This could happen if during the upgrade process the application is interrupted by a phone call or pressing the home button. We have on our list a better way to handle this (by going back to the automatic backup if the upgrade fails for example).
Now - to resolve the issue, there are a couple options. Before PI upgraded the database file to version 1.1, it would have made a backup copy. You can download this backup to your desktop if you like (and I'd recommend it "just in case" until you're happy that everything is restored properly). NOTE: your iPod Touch and your computer must be on the same wireless network if you want to do this. To download your backup:
- First, get back to the main settings screen
- Go to "Backup/Restore" and turn on the web service.
- On your desktop machine, open a browser and enter the URL PI gives you. You will see a list of all PI files. The main one(s) you care about are pidata.sqlite (this is your current calendar file that we think is damaged somehow) and the ones in the form pidataYYYYMMDD_HHMMSS.sqlite (where YYYYMMDD_HHMMSS is the date that PI backed up that calendar file...). So, you most likely want the most recent backup - it should be the date/time that you first launched version 1.1. This one will have all the data that you had prior to the upgrade.
So now that you have your calendar data backed up - you have a couple choices:
1. If Google and ToodleDo are all up to date with any changes you had made locally, then you can simply erase your local database and start from scratch (sync everything down again). When you do an "Erase Local Database", it does not affect any Google events - it simply archives your current local database file, creates a new one, and then will set PI to do a First Time Sync again. So, while you're in settings, go to Advanced, then Erase Local Data. Tap the Erase Local Data button, then when that is complete, backup to the main settings screen and get into your Google Sync settings to do a First Time Sync and you'll be back up and running.
OR
2. If you had local data that you didn't sync to Google/ToodleDo yet, you can restore your backup and make it the new "current" database again. To do this - you need to be back on that same PI web sharing page that you were when you downloaded the PI database. There's an option to choose a file to restore - choose your backup and submit it...that will cause PI to install that as your new calendar file. Once it's restored, I'd recommend doing a "Merge Sync" to get Google and PI back inline with each other.