[CoreLocation][iOS 18.3.2] OS is not notifying monitored region state to application

We have an application. We are monitoring the fence event. We are using 'startMonitoringForRegion' API. but we are not getting any fence event.

Steps

Create a fence using 'startMonitoringForRegion' API BG on APNS trigger. initial fence state 'didDetermineState' not received. From Syslogs we can see OS has detected but event is not given to Application We are compiling code using SDK18.0

Error ** locationd Fence: LAC monitoring is not sufficient for <AppID>/<FenceID> ocationd Fence: no allowing wifi monitor for, 400.0, fence

Feedback Ticket ID: FB17250308

Syslogs Snippet:

debug 2025-04-15 12:45:40.890193 -0500 locationd FenceCal: combine non-fine non-large fence, distance, 0.0, <AppID>/<FenceID> //OS detetected fence state default 2025-04-15 12:45:44.706232 -0500 locationd Fence: fenceUpdate, <FenceID>, bundle, <AppID>, type, GPS , loc, 33.1171776, -96.6606076, acc, 19, distance, 17, tech, LC...+, trans, 0, state, 0, cont, 1, fence, 33.11728835, -96.66048288, 1011.0, 766431742.6, sCount, 0, 0, trig, 0, 3, sinceLastLoc, 10.0, events, 0x00001810, status, (Inside) => (Inside) , settled state, (Unknown) ==> (Unknown), cantShiftButNeedTo, 0, sinceLastTransition, -1.0, significant, 0, loi, 0, lastProximityStateTimestamp, -1.000000, lastProximityState, 0, lastApproachingState, 0 // debug 2025-04-15 12:45:44.706247 -0500 locationd Fence: LAC monitoring is not sufficient for <AppID>/<FenceID> // debug 2025-04-15 12:45:44.706263 -0500 locationd Fence: no allowing wifi monitor for, 400.0, fence, Fence, []/<AppID>/<FenceID>, latitude, 33.11728835, longitude, -96.66048288, refFrame, 0, distance, 1011.0, eFistance, 1011.0, lDown, -1.0, time, 766431742.6, ctime, -1.0, flags, EX------, key, -1506186373, throttled, N, polygon, 0, envType, 2, locType, 0

If you are suspecting the issue is stemming from an issue with the fence monitoring system, that is going to be something for the location team to handle via your Feedback report (you can monitor the status of your feedback using the Feedback Assistant).

One thing I would like to note is that didDetermineState is not automatically called when you start monitoring a region.. Like other callbacks, it requires a state change into or out of the region.

You can call requestState(for:) (albeit deprecated, it is still going to work in iOS 18, which may call back didDetermineState if there are no other problems like determining location/state of the region or an issue in your code preventing didDetermineState to be called at all.


Argun Tekant /  DTS Engineer / Core Technologies

[CoreLocation][iOS 18.3.2] OS is not notifying monitored region state to application
 
 
Q