Android 14 connection issues - repeated GATT 133 errors

We've been having an issue with certain tablets running Android 14 apparently getting into a state where all connection attempts result in a GATT 133 error. When it's in this state, the failures happen with various different peripheral devices, and both in our own app, and the nRF Connect app. Scanning for advertising devices still works, and existing Bluetooth connections persist, but fail to reconnect if the connection drops. 

My assumption is this is a problem with the native Android Bluetooth code, so not a Nordic issue per se - but I thought I'd ask in case you had any advice on how to avoid or deal with this issue, and particularly in case anyone working on Android app development or the Kotlin BLE library had seen anything like this on Android 14.

One "fix" for this is to turn the tablet off and on again, although it's not particularly convenient for users. Turning bluetooth off and on doesn't seem to fix anything, although we recently tried enabling HCI snoop logign on a tablet in this failing state, and that plus turning bluetooth off and on *did* in fact clear the issue.

We get almost nothing from the nRF Connect logs - just a GATT 133 and a connection failure.

Parents
  • Hi,

    Error 133 - Gatt error is just a generic error. It happens in different occasions. We have observed it on

    1) packet collision
    2) CONNECT_REQ missed by the target
    3) timeout (30 or 20 seconds after connection was initiated)
    4) in general, an expected packet wasn't received or an unexpected was.

    It used to be much more common in old days, now we see it less and less with new phones/tablets, but the low-end devices could still have problems with this kind of error.

  • Yes, it's very hard to debug because it's so vague as to what the problem is.

    We most often get them when trying to re-establish a connection with a device that has gone out of range. In that case of course they are expected as the remote device is "not there" to connect to.

    We used to very occasionally get tablets in a similar state where nothing would connect until we turned the tablet off and on, or cleared the Bluetooth cache. This seems to have returned with Android 14, and is happening more often. This is with Samsung Tab A9s, so not particularly low-end.

    This discussion here https://github.com/dariuszseweryn/RxAndroidBle/issues/688 seems to be describing a similar issue - it's possible after a certain number of connections the bluetooth stack locks up or runs out of cache memory or something. 

    Anyway, as I say, it looks like an Android problem, I'm just asking in case someone at Nordic has seen something similar on recent Android versions

Reply
  • Yes, it's very hard to debug because it's so vague as to what the problem is.

    We most often get them when trying to re-establish a connection with a device that has gone out of range. In that case of course they are expected as the remote device is "not there" to connect to.

    We used to very occasionally get tablets in a similar state where nothing would connect until we turned the tablet off and on, or cleared the Bluetooth cache. This seems to have returned with Android 14, and is happening more often. This is with Samsung Tab A9s, so not particularly low-end.

    This discussion here https://github.com/dariuszseweryn/RxAndroidBle/issues/688 seems to be describing a similar issue - it's possible after a certain number of connections the bluetooth stack locks up or runs out of cache memory or something. 

    Anyway, as I say, it looks like an Android problem, I'm just asking in case someone at Nordic has seen something similar on recent Android versions

Children
No Data
Related