Second time BLE Connection Issue - Gatt 22

Hi,

Our mobile app which connects to shaver ( BLE enabled), doesn’t work on some of the Samsung devices after updating to Andriod 10. The connection was working fine earlier when the same devices were on Android 9.

Some of the devices Devices we tested : Samsung Note 1 0, Samsung S9, Samsung M31.

Scenario : First time connection works fine, but second time onwards connection is NOT working if we switch OFF and ON in between.

While trying to connect to the shaver ( which is already bonded during the first time connection), we get Gatt 22 error. Looks like it is because the mobile device, sends a BLE change indication towards the BLE peripheral and it doesn’t get the acknowledgement/confirmation from peripheral.

Because of this pending, further connect request doesn’t get through. This happens only if the peripheral device is bonded/paired device.

The connection request returns with Gatt 22.

The work around to get rid of this connection issue is “Flight mode swtich ON and OFF”. Probably its clearing all BLE cache/data when we do the Flight Mode OFF/ON.

What has changed from Android 9 to Android 10 ? What is the reason for this behaviour ?

What needs to be done to solve this particular issue ?

Regards,
Ajith