Pages

Sunday 2 October 2011

Application has active assertions beyond permitted time


If your application runs long running background task, then probably you would have seen several of these crash reports in your organizer's device logs.

"Application Specific Information:
<application_name> has active assertions beyond permitted time:
{(
    <SBProcessAssertion: 0x1fa7cef0> identifier: UIKitBackgroundCompletionTask process: OpenMobile[1087] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:1087 preventSuspend  preventIdleSleep ,
    <SBProcessAssertion: 0x1ed0ad70> identifier: UIKitBackgroundCompletionTask process: OpenMobile[1087] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:1087 preventSuspend  preventIdleSleep ,
    <SBProcessAssertion: 0x1fa96c80> identifier: UIKitBackgroundCompletionTask process: OpenMobile[1087] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:1087 preventSuspend  preventIdleSleep ,
)}"


What this tell is that your application is running (or has not marked a task as 'end') a background task beyond the permitted time. In order to understand this we should dive into the concept of long running background tasks.