iBeacon Notification Delayed Many Hours

We have an app that has been using iBeacons and Geofences for 10+ years. While I cannot state when it started, we're seeing sporadic delays of hours to receive iBeacon "didExitRegion" event. I can prove this out on my iPhone running iOS 17.4.1 by setting up both a Geofence and an iBeacon in the same physical location.

Yesterday, I have a several hour gap with no iBeacon events, but successfully see Geofence events. Then, an hour+ after leaving the Geofence, I get multiple didExitRegions from the same iBeacon (all without touching the app). Then this morning, everything again is working great.

It "feels" like the phone stops delivering entry and exit events for the Bluetooth iBeacon for some period of time. Then, it resumes monitoring by first providing old event that were not delivered to us in real time. It's not atypical for me to see a didExitRegions event that should happen around 5pm that instead happens in the middle of the night.

So far, I have not noticed this behavior for our app running on iOS 16.4.1. We're currently testing other versions of iOS to see if we can pinpoint when it started. I have a full battery so we've ruled out power saving mode. Bluetooth is on with all permissions of course. We are still receiving Geofence updates so we must have available background time.

Is there any known issue in iOS 17+ that would explain this behavior? Or, is there any Feedback/Radar to explain it? Known issue?

Post not yet marked as solved Up vote post of bmedenwald Down vote post of bmedenwald
130 views

Replies

I suspect the problem is AirPods and automatic switching as outlined here.. Back in iOS 12 we worked with Apple on a support ticket and built a simple app to reduce/replicate the problem.. No one here can remember the resolution, so it's either been broken since iOS 12 at least or it's an old problem that's reemerged.

I'm going to test without AirPods over the next 24 hours and see if the issue resolves.