rc.local not running on startup

According to This forum post the problem could be with failed distro-upgrades. After converting my physical disk to a VM and updating it there it worked with a test script: test.sh

echo run > run.txt

I then put back in my original script and it still didn't work. Taking the advice of Wazoox:

Yes obviously the "start_bt" script copy files around and run commands from a defined place which isn't / (from which /etc/rc.local is run). You should probably add a line like this : cd /home/[redacted]/Desktop/rtl8723bs_bt/ right after the line echo "Using device $TTY for Bluetooth"

By adding cd /home/[redacted]/Desktop/rtl8723bs_bt/ to the script fixed the problem of it not running. To fix this problem on the physical computer I will need to reinstall Ubuntu, which wasn't a problem for me.