Raspberry Pi 3 bluetooth stops working after a while

dmesg | grep Blue shows the following:

[   14.034501] Bluetooth: Core ver 2.22
[   14.034587] Bluetooth: HCI device and connection manager initialized
[   14.034609] Bluetooth: HCI socket layer initialized
[   14.034622] Bluetooth: L2CAP socket layer initialized
[   14.034654] Bluetooth: SCO socket layer initialized
[   14.048959] Bluetooth: HCI UART driver ver 2.3
[   14.048974] Bluetooth: HCI UART protocol H4 registered
[   14.048980] Bluetooth: HCI UART protocol Three-wire (H5) registered
[   14.049211] Bluetooth: HCI UART protocol Broadcom registered
[   14.324295] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   14.324304] Bluetooth: BNEP filters: protocol multicast
[   14.324318] Bluetooth: BNEP socket layer initialized
[   14.400493] Bluetooth: RFCOMM TTY layer initialized
[   14.400517] Bluetooth: RFCOMM socket layer initialized
[   14.400544] Bluetooth: RFCOMM ver 1.11
[ 1615.270230] Bluetooth: hci0 hardware error 0x00
[ 1619.500366] Bluetooth: hci0 command 0x1003 tx timeout
[ 1621.580373] Bluetooth: hci0 command 0x1001 tx timeout
[ 1623.660382] Bluetooth: hci0 command 0x1009 tx timeout
[ 1627.980418] Bluetooth: hci0 hardware error 0x00
[ 1630.060437] Bluetooth: hci0 command 0x1003 tx timeout
[ 1632.140793] Bluetooth: hci0 command 0x1001 tx timeout
[ 1634.220438] Bluetooth: hci0 command 0x1009 tx timeout
[ 1717.420690] Bluetooth: hci0 command 0x1003 tx timeout
[ 1719.500695] Bluetooth: hci0 command 0x1001 tx timeout
[ 1721.580697] Bluetooth: hci0 command 0x1009 tx timeout
[ 1728.940700] Bluetooth: hci0 command 0x1003 tx timeout
[ 1731.020745] Bluetooth: hci0 command 0x1001 tx timeout
[ 1733.100711] Bluetooth: hci0 command 0x1009 tx timeout
[ 1766.060724] Bluetooth: hci0 command 0x1003 tx timeout
[ 1768.140730] Bluetooth: hci0 command 0x1001 tx timeout
[ 1770.220721] Bluetooth: hci0 command 0x1009 tx timeout
[ 1830.140659] Bluetooth: hci0 command 0x1003 tx timeout
[ 1832.220708] Bluetooth: hci0 command 0x1001 tx timeout
[ 1834.300655] Bluetooth: hci0 command 0x1009 tx timeout

systemctl status bluetooth shows:

Jan 13 21:46:10 picroft bluetoothd[7820]: Excluding (cli) sap

Jan 13 21:46:10 picroft bluetoothd[7820]: Bluetooth management interface 1.14 initialized

Jan 13 21:46:10 picroft bluetoothd[7820]: Failed to obtain handles for "Service Changed" characteristic

Jan 13 21:46:10 picroft bluetoothd[7820]: Endpoint registered: sender=:1.33 path=/MediaEndpoint/A2DPSource

Jan 13 21:46:10 picroft bluetoothd[7820]: Endpoint registered: sender=:1.33 path=/MediaEndpoint/A2DPSink

Jan 13 21:46:12 picroft bluetoothd[7820]: Loading LTKs timed out for hci0

Jan 13 21:46:20 picroft bluetoothd[7820]: Failed to set mode: Failed (0x03)

Jan 13 21:46:31 picroft bluetoothd[7820]: Failed to set mode: Failed (0x03)

Jan 13 21:53:30 picroft bluetoothd[7820]: Endpoint unregistered: sender=:1.33 path=/MediaEndpoint/A2DPSource

Jan 13 21:53:30 picroft bluetoothd[7820]: Endpoint unregistered: sender=:1.33 path=/MediaEndpoint/A2DPSink

I really don’t know whats causing this, but a reboot fixes it.