There are some crashes observed in production app only for Android 13 devices.
All the bluetooth related permission are declared in manifest and nearby device runtime permissions are also in place.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto">
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission
android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="33" />
<uses-permission
android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation"
tools:ignore="UnusedAttribute" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION"
android:maxSdkVersion="31" />
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION"
android:maxSdkVersion="31" />
</manifest>
Crash Logs:
Fatal Exception: java.lang.SecurityException: Need BLUETOOTH PRIVILEGED permission: Neither user 10370 nor current process has android.permission.BLUETOOTH_PRIVILEGED.
at android.app.ContextImpl.enforce(ContextImpl.java:2240)
at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:2268)
at android.content.ContextWrapper.enforceCallingOrSelfPermission(ContextWrapper.java:948)
at com.android.bluetooth.Utils.enforceBluetoothPrivilegedPermission(Utils.java:411)
at com.android.bluetooth.gatt.GattService.permissionCheck(GattService.java:474)
at com.android.bluetooth.gatt.GattService.registerForNotification(GattService.java:3801)
at com.android.bluetooth.gatt.GattService$BluetoothGattBinder.registerForNotification(GattService.java:1085)
at com.android.bluetooth.gatt.GattService$BluetoothGattBinder.registerForNotification(GattService.java:1073)
at android.bluetooth.IBluetoothGatt$Stub.onTransact(IBluetoothGatt.java:812)
at android.os.Binder.execTransactInternal(Binder.java:1285)
at android.os.Binder.execTransact(Binder.java:1244)