Intermittent Stuck in "Connecting..." with iOS 18 and nRF Connect Mobile

Hello Nordic Community,

I’m encountering an intermittent issue with my BLE peripherals, which are based on nRF5340 + nRF7002 SoC, while testing with nRF Connect Mobile on devices running iOS 18.

The issue manifests as follows:

  • The peripheral devices are discoverable and show up in the scan list.
  • When attempting to connect, the connection gets stuck in "Connecting..." status.
  • Sometimes, restarting or disabling/enabling Bluetooth on the iOS device resolves the issue temporarily. However, the problem reappears after some time, especially if I try to reconnect later.
  • The issue is random and doesn’t occur with all peripherals.

This setup has been tested extensively with Android and earlier iOS versions without any such problems.

Details:

  1. Setup:

    • Sensor hardware: nRF5340 + nRF7002 SoC
    • nRF Connect SDK v2.6.0
    • Testing app: nRF Connect Mobile (iOS)
  2. Problem Symptoms:

    • Devices are discoverable via scanning.
    • Connection gets stuck at "Connecting..." in nRF Connect Mobile.
    • Sometimes restarting the sensor or toggling Bluetooth on the iOS device helps temporarily.
    • Randomly occurs, affecting some peripherals but not all.
    • Checking FW logs, seems like my peripheral is not even getting a connection request.
  3. What works:

    • Android devices and iOS versions prior to iOS 18 connect reliably.
    • Once connected, functionality appears normal, provided the connection is established.

Questions:

  1. Has anyone else experienced BLE connection issues specifically with nRF Connect Mobile on iOS 18?
  2. Are there any known compatibility updates or changes in iOS 18 that might cause this behavior?
  3. Could this be related to BLE resource allocation or the number of concurrent connections on the iOS device?
  4. What additional debugging steps or firmware configurations would you recommend to improve stability?

I’d appreciate any insights or suggestions on resolving this issue. Let me know if further details or logs are needed.

Thank you!

Parents
  • I am noticing some weird issues related to iOS 18.  We are trying to do a firmware update and it changes the advertisement data which causes a whole slew of problems where you can't read or write from the charertistics until cycling Bluetooth off and on or rebooting the phone.  Without being a BLE protocol expert I can't tell who is at fault here either apple or nordic.

Reply
  • I am noticing some weird issues related to iOS 18.  We are trying to do a firmware update and it changes the advertisement data which causes a whole slew of problems where you can't read or write from the charertistics until cycling Bluetooth off and on or rebooting the phone.  Without being a BLE protocol expert I can't tell who is at fault here either apple or nordic.

Children
  • Sorry for late response. Was away for a while.
    I think we can answer who is at fault here if you can attach a air sniffer log of the whole communication. We can then analyze the timings of response from each side and pinpoint the issue.

  • Hi Susheel,

    Thanks for your response! I have taken some Wireshark sniffer logs and analyzed the BLE traffic. Here’s what I found:

    1️⃣ iOS 18 scans my device (SCAN_REQ) and my device correctly responds (SCAN_RSP).
    2️⃣ However, iOS 18 never sends a CONNECT_IND, meaning my peripheral never receives a connection request.
    3️⃣ The issue only occurs on iOS 18. Android and earlier iOS versions connect without issues.
    4️⃣ My advertising flags (0x06) and scan response data appear to be formatted correctly.
    5️⃣ My advertising interval (~100ms) is within Apple’s expected range.

    Since iOS 18 is scanning my device but not initiating a connection, I suspect that iOS has stricter BLE filtering rules or there is a compatibility issue.

    Could you help analyze whether this could be due to:

    • New iOS 18 BLE filtering behavior?
    • A missing or unexpected advertising field?
    • Security settings or bonding requirements?

    I can provide sniffer logs if needed. Let me know if you have any recommendations on how to proceed!

    Thanks in advance!

Related