scan failed with error code 1 or 2
Version
Tell us which versions you are using:
- react-native-ble-manager v6.5.6
- react-native v0.59
- Android v6.0+
Expected behaviour
App should scan normally
Actual behaviour
Scan failed with error code 2
Steps to reproduce
- Connect device
- App from foreground to background
- Wait a few minutes, app from background to foreground
- Scan failed
Stack trace and console log
2019-07-06T13:00:08 app from background to foreground, and not in dfu mode, scan with serviceUuid
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: false, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: false, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: false, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: false, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: false, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: false, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: false, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: false, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
2019-07-06T13:00:09 handleBleStopScan connectDevice size: 1, self.isSockDfu: false, self.isConnecting: false, self.willDfu: false, BluetoothManager.isScanning: true, args: {"scanFailedCode":2}
Here you can find the list of scanFailedCodes: https://developer.android.com/reference/android/bluetooth/le/ScanCallback.html#SCAN_FAILED_ALREADY_STARTED
In your case, code 2 means SCAN_FAILED_APPLICATION_REGISTRATION_FAILED. Googling for it, shows a wide variety of reasons why this could happen. Please have a look. If you can't find the reason, we need to see your code.