Try enabling experimental features from bluetoothd : that is modify /lib/systemd/system/bluetooth.service to have: ExecStart=/usr/lib/bluetooth/bluetoothd -E instead of: ExecStart=/usr/lib/bluetooth/bluetoothd
then: sudo systemctl daemon-reload and: sudo systemctl restart bluetooth.service This fixed the : Feb 06 15:47:43 servo bluetoothd[801]: Not enough free handles to register service Feb 06 15:47:43 servo bluetoothd[801]: Error adding Link Loss service Feb 06 15:47:43 servo bluetoothd[801]: Not enough free handles to register service Feb 06 15:47:43 servo bluetoothd[801]: Not enough free handles to register service Feb 06 15:47:43 servo bluetoothd[801]: Not enough free handles to register service Feb 06 15:47:43 servo bluetoothd[801]: Current Time Service could not be registered Feb 06 15:47:43 servo bluetoothd[801]: gatt-time-server: Input/output error (5) Feb 06 15:47:43 servo bluetoothd[801]: Not enough free handles to register service Feb 06 15:47:43 servo bluetoothd[801]: Not enough free handles to register service Feb 06 15:47:43 servo bluetoothd[801]: Sap driver initialization failed. Feb 06 15:47:43 servo bluetoothd[801]: sap-server: Operation not permitted (1) side of the issue (that is "gatt" issues) but left: Feb 06 15:47:43 servo bluetoothd[801]: Failed to obtain handles for "Service Changed" characteristic PS: my local issue was not related to those errors YMMV. The -E flag clue for GATT is from https://bugs.launchpad.net/ubuntu/+so urce/bluez/+bug/1546603 NB: you might also add "-d" to enable debugging output . if nothing obvious shows up , "sudo btmon" output while running the bluetooth commands will help further. Cheers Alban