My app used runIn() to schedule a function to be called in five minutes. That works 99% of the time. However, I have had two occasions where the call didn't happen. In both cases, the problem occurred between 2:20 and 2:30 am. When I look at the status of the App the next morning, the call shows up but without a scheduled time. Any ideas why the call doesn't happen?
The missed call leaves the App in a state where it doesn't process later events correctly. My work-around is to have a back-up function that is called every 30 minutes. The back-up function checks whether the App is in a proper state and fixes it if not. That prevents the App from staying in an improper state for very long, but I would prefer to understand why it happens in the first place.