From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> If bonding has failed but there are other bearers connected don't mark the device as temporary. Fixes: https://github.com/bluez/bluez/issues/856 --- src/device.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/device.c b/src/device.c index 5dc1cd0cdbf2..486ffdb4ea8d 100644 --- a/src/device.c +++ b/src/device.c @@ -6428,7 +6428,8 @@ void device_bonding_complete(struct btd_device *device, uint8_t bdaddr_type, /* Put the device back to the temporary state so that it will be * treated as a newly discovered device. */ - if (!device_is_paired(device, bdaddr_type) && + if (!btd_device_bearer_is_connected(device) && + !device_is_paired(device, bdaddr_type) && !btd_device_is_trusted(device)) btd_device_set_temporary(device, true); -- 2.45.2