A small number of users on the beta or development update channels running Home Assistant OS are impacted by a significant issue that prevents the Supervisor from working properly and from updating itself to a working version.
You are not impacted if you are using a stable release of Home Assistant or run Home Assistant Supervised, Home Assistant Container or Home Assistant Core installations.
To diagnose if you’re impacted, go to Settings → About. If you see a Supervisor version of Supervisor 2022.11.0
or Supervisor 2022.11.dev1401
then you are affected.
How to fix your installation if you are impacted
1. Factory reset/Reinstall and Restore a backup
This issue does not exist on the stable version of supervisor (2022.10.2
at time of writing). A freshly installed HAOS or Supervised system will be running the latest stable version of supervisor. At that point you can restore a backup on the now working supervisor and continue as normal.
To download a backup, go to Home Assistant settings → Backups and hit the download button.
Note that if you are currently stuck, you cannot make new backups. Existing backup are not corrupted and restoring one does not change the version of supervisor (so it won’t revert to the broken version).
Home Assistant Yellow
Instead of re-installing, Home Assistant Yellow users can factory reset using the blue and red buttons on the back of the device. See this guide for more information.. Make sure you download the backup before factory resetting!
2. Manual Update from CLI
If you cannot or do not want to reinstall then this can be fixed from a terminal with Docker access. Please follow the guide for your system below to reach this terminal.
To fix the system run the following command:
curl -o - https://version.home-assistant.io/update-supervisor.txt | sh
It will download a script that restores your Supervisor to the latest working version. You might see a repair issue “Supervisor update failed” but it should resolve itself automatically (or use the Supervisor update entity).
If you get an error saying “command not found: docker”, you are not using a terminal with Docker access. Please check the guides below.
How to get access to the CLI
Home Assistant Operating System
The easiest way for most users to access the host shell is to connect a keyboard and monitor to your device, or through a terminal if you are running a virtual machine. Enter login
at the prompt to login and then you can enter the commands below.
Alternatively you may follow this guide to set up host SSH access over port 22222. This is different from the SSH addon and the commands will work from here.
Home Assistant Yellow
If you are on Yellow, you can follow this guide if you have a linux/mac computer or this guide if you have a Windows computer. This will get you to the serial console where you can execute the commands below.
Alternatively you may follow this guide to set up host SSH access over port 22222. This is different from the SSH addon and the commands will work from here.
Community SSH Add-On
The community SSH add-on called SSH & Web Terminal (not to be confused with the official Terminal & SSH add-on) has the ability to access Docker on the host. This allows it to be used to recover your system.
This requires the add-on to be already installed. Installation of new add-ons is not working on a system in this stuck state.
To be able to use the add-on, disable protected mode and restart the add-on. Click on “Open web UI” to get to the terminal.
Remediation
The bug has been fixed and testing increased accordingly. We’ll also be looking into more ways to improve testing in this area to avoid this from happening.
The biggest issue identified was the inability to update supervisor when supervisor isn’t working. Ideally we catch issues like this before beta but if one slips through we can’t have beta users getting stuck.
Acknowledgements
Thanks to @bdraco and @agners for the help with the restore script.