I have written numerous services in the past to help with networking issues. Below is a service I wrote a while back to deal with your type of Bluetooth problem. Follow the steps detailed below to create a service that should start your bluetooth connection for you without requiring any intervention on your part.
Bluetooth Startup Service
Sometimes network drivers can conflict with each other. In some cases the drivers must be loaded in a specific sequence or they will fail to load properly. This Bluetooth startup service in combination with a Bluetooth blacklist file will ensure that Bluetooth is not started until after the other networking components are initialized.
The following is a simple system service to start your Bluetooth after your WiFi at system startup.
The best way to ensure there is no driver conflict with WiFi or Ethernet at startup is to blacklist the btusb module.
Run this command to prevent Bluetooth from initiating early in the startup sequence:
echo 'blacklist btusb' | sudo tee /etc/modprobe.d/blacklist_btusb.conf
This will create
/etc/modprobe.d/blacklist_btusb.conf which will prevent the bluetooth module from automatic early startup.
Then create the following service which will restart the Bluetooth components automatically after the other network components:
Restart Bluetooth Service
With a text editor create:
Service file contents:
#systemctl enable restart-bt.service
#systemctl start restart-bt.service
#systemctl stop restart-bt.service
#systemctl disable restart-bt.service
#systemctl status restart-bt.service
Description=Restart Bluetooth Service
ExecStop=/usr/bin/systemctl restart bluetooth
Save the newly created service file, then enable the service:
systemctl enable restart-bt.service
Bluetooth should now be automatically started after your other network components have been loaded at startup.