NFC Kaput

I keep seeing this in the Xcode when I launch my app:

-[NFCTagReaderSession beginSessionWithConfig:]:468 error:Error Domain=NFCError Code=203 "System resource unavailable" UserInfo={NSLocalizedDescription=System resource unavailable}, errorCode: 0xcb

Initially, the device was working with NFC. Now on multiple complete restarts of my app, the System resource is still not available. If I lock the screen and reenter iOS again, the problem persists.

Rebooting the device appears to get it working again. I suspect this is only happening on iPhone 15 and iOS 18.01. My other devices I have do not exhibit the problem. I'd wager some service in the OS has crashed?

There also appears to be limitation on renewing nfc sessions. Similar problems on iPhone 16 to what I experienced on iPhone 15. I don't know what they did with iPhone 15 and 16 but the NFC has really deteriorated for longer sessions. Seems the newer Apple HW is worse at NFC than my iPhone 11. Just providing feedback.

The device also has 100% charge. Issues seem more prevalent with lower battery charge but that is not the case here.

So, is the device not working with NFC at all, or only your app? If the problem is only with your app, my first guess would be that you are trying to activate multiple reader sessions.

Make sure you don't have an active session anywhere in the app before you call beginSession.

Also, not only per app, but there can only be a single active NFC reader session on the device. So, double check your testing procedures to make sure you don't have another app trying to read NFC at the same time.

Based on your additional question about renewing NFC sessions, it could also be that you are trying to extend the session using a trick, and that might be causing the multiple active sessions, leading to this error. While it was possible to use certain tricks to extend the NFC sessions beyond what was initially allowed, these loopholes have now been closed - which is probably why you think the new phones have issues with longer sessions. They do, that it is no longer possible to extend the sessions beyond the allowed amount by "renewing" them.


Argun Tekant /  DTS Engineer / Core Technologies

I believe the only app using nfc on the development device is the app I'm working on. No other 3rd party apps are running in the background.

Another interesting note, the device went to sleep and when I got back from lunch, after about 40 minutes, then nfc started to work again. Its like it reset it self.

There is different behavior on different devices. For instance, I can have longer sessions on older phones like iPhone 11. Then newer iPhone 15 and 16 seem to have more restrictions as you suggested. ( especially iPhone 15 )

I will look over your suggestions.

Also, would the loophole corrections you mentioned cause issues with restartPolling() and didDetect callback? Is there any updated documentation related to these recent changes?

Much appreciate your help.

NFC Kaput
 
 
Q