MobileCal has active assertions beyond permitted time

This FAQ discusses iOS® crash logs in Settings > General > About > Diagnostics & Usage > Diagnostics & Usage Data with file names

stacks+MobileCal-date-time.plist.synced

where date and time are the date and time of the crash, respectively. These crash logs contain the following Exception Code and Reason:

Exception code: 0x8badf00d
Reason: MobileCal[pid] has active assertions beyond permitted time…

where pid is the process ID of the MobileCal process at the time of the crash.

Since updating my iPhone® 5 to iOS 7, I regularly see a number of these logs. While neither daily occurrences nor affecting battery life, I find one or two of these logs for any given day. As I write this, 14 such logs spanning the past week are in Diagnostic and Usage Data, an average of two per day.

Exception code 0x8badf00d is colloquially known as the ate bad food exception because of its hexadecimal encoding. This and other common iOS exception codes are discussed in Apple® Developer Technical Note TN2151, "Understanding and Analyzing iOS Application Crash Reports." Details about the 0x8badf00d exception code, including common causes, are covered in Apple Developer Technical Q&A QA1693, "Synchronous Networking On The Main Thread."

The 0x8badf00d exception indicates the application was terminated because of a watchdog timeout: the application "took too long to launch, terminate, or respond to system events." The watchdog mechanism "keeps the user interface responsive" by terminating unresponsive applications after some period of time. Watchdog timeouts are commonly caused by network timeouts: iOS terminated the app because a pending network request did not complete in a timely manner. Therefore, likely reasons for these logs are:

  1. Your iOS device had a slow network connection or lost its network connection at the time of the crash. For example, Calendar was trying to sync with iCloud and the sync timed out due to a slow connection.
  2. A problem connecting to iCloud, such as an iCloud server or intermediate network outage, resulted in a sync operation timing out.

If you are only seeing a handful of these logs per day, I would ignore them, especially if you can correlate the time of the event — as reported in the crash log — with times when you may have been using a slow cellular data connection or been in an area with poor cellular data connectivity. Check your type of network connection via its icon in the status bar of your iOS device; check iCloud status on the Apple System Status page.

If you have enabled Automatically Send in Settings > General > About > Diagnostic & Usage, these logs will be removed over time.

iOS 7 may be more sensitive to network timeouts than prior versions. A future update may adjust the timeout parameters discussed in "Synchronous Networking On The Main Thread" to reduce these crashes.

If you are experiencing rapid battery drain — e.g. decreasing from a full charge at morning to 10-20% remaining by mid-afternoon — and seeing numerous instances of crash reports that cannot be explained by the Developer documentation cited above, try the advice in this blog post by Josh Bancroft.

Did you find this FAQ helpful? You will find a wealth of additional advice for preventing or resolving Mac OS X problems in Dr. Smoke's book, Troubleshooting Mac® OS X.

Use of this site signifies your agreement to the terms of use.