BLE5 extended advertising not working with iOS 17

I am using nRF52840, and have set up BLE 5 extended advertising. I was able to connect with the nRF Connect app to nrf52840 device using iPhone 11, 12, 13 running iOS 16.

Recently after updating to iOS 17, I can only discover the BLE device, but can't manage to connect to the device from the app. I can only connect to the device via iPhone 11, running iOS 17. However, all the other later versions of iPhone do not permit me to connect with the nrf device. As a test switching to BLE4 advertising, devices are both discoverable and connectable, on these same iPhone versions running iOS 17. I need to use BLE5 and can't switch to BLE 4 for production release.

Also, the same devices can be both discovered and connected to, using Android phones that support BLE 5.

While trying to connect with iPhone running iOS 17, I don't get a response to the connection from the BLE5 advertisement. This was confirmed by Wireshark capture while trying to connect on the iPhone. Nordic has confirmed that the issue is not on their side and hence would like your help to investigate this further.

Hi!

We have a really similar issue. We wanted to change from legacy BLE advertisement to the BLE 5 advertising extension. We tried advertising with different development kits (nRF and ST chip) and devices and we see the same behaviour with all of them. We can even reproduce it if we advertise from an Android device with the nRF connect app.

So we are trying to connect with iPhones to a BLE peripheral advertising with the advertising extension (CONNECTABLE, secondary PHY: 2Mbps). From the iPhones (BLE central) side it looks like it takes really long to connect, we don't get any errors. From the peripheral side it looks like the iPhone is producing a connection establishment failed error, and tries to connect again immediately. And this happens multiple times in a short period of time, and finally after many seconds this reconnecting loop breaks and the connection is established successfully. We tried it with 10 different iPhone models that supports the advertisement extension from iPhone XS to iPhone 15 pro. The newer models (from iPhone 13) can connect much faster, with less reconnection attempts. The worst performing is the iPhone XS.

We tried to investigate this issue with sniffers, measuring connection times and research. We never saw the issue when we were trying to connect to the same peripheral with an Android phone or other BLE devices. That's why we believe it's not a problem on the peripheral side. We also found that Apple devices violate timing values when they are trying to connect to a peripheral using the advertisement extension. Reference: https://devzone.nordicsemi.com/f/nordic-q-a/94182/issue-connecting-from-ipad-air-to-extended-advertising-set-of-nrf53/

In our test we saw that the performance changes in a significant amount when we change the advertisement parameters, like the interval and the secondary skip max value. But the connection - failed to establish connection loop is still present, but broken faster with specific advertisement parameters.

BLE5 extended advertising not working with iOS 17
 
 
Q