How to stop supervisor auto-update?

The new supervisor (179) and the core-dns that got added with it crippled my system (deCONZ, Unifi, Ping sensor, Glances, etc all down), and want to roll back to the previous version.

I have snapshots to roll back to, but since the supervisor auto-updates, a snapshot isn’t helpful for any longer than it takes to automatically update again.
How do I shut off automatic updates of the supervisor?

On a related note, I first tried downgrading the supervisor with the “hassio supervisor update --version 178” command in the CLI, I said it was “processing” 18 times, then nothing. Version is still the same. Is this expected?

Issues like this are what keep me from running hassio.

1 Like

I never thought someone would actually think it would be a good idea to instate a mandatory DNS server (hard coded to google, no less) which breaks existing ad-guard/pihole setups, mDNS, and a bunch of other crap.

I had the assumption that such a thing would have to take place in an architecture discussion first, allowing time for people to weigh-in and describe why such things might not be a good idea to be forced.

I was incorrect.

Same issue.
Supervisor 179 brakes a lot. Manuell downgrade to 173 fixes all issues. But a few seconds later 179 is installed automatically

I know right?

That’s… discouraging.
But I do appreciate you sharing that information.

Yeah,I completely forgot about the “auto-update” thing with the hassio supervisor. I really don’t like that. :grimacing:

Now I’m kind of glad I wasn’t able to get my command-line sensors setup so I never finished making the switch yet. This issue likely wouldn’t have affected me but who knows which other one down the road might.

Now I have to decide if the switch is worth it or not.

The HassIO supervisor always updates without asking, weather you like it or not. HassOS updates can be done manually however.

I guess you could block updates on a network level somehow, I guess the reasoning behind it is HassIO is aimed at beginners therefore they should have updates automatically.

However I’d like the option to disable auto-update even if it’s turned on by default.

Could this be added to ‘feature requests’ or is this for HA features only?

So I noticed that the downgrade command DOES work, but it takes immediately upgrades again. I’ve blocked access to the updates url (https://version.home-assistant.io/stable.json), however the supervisor still knows that 179 is the newest.

How do I clear this knowledge of the current version?
Alternatively, what’s the URL that it’s downloading it from? Blocking github.com doesn’t stop it, unless it has that DNS record cached.

See:

I could be wrong, but I don’t think those are used any more. All of the logs I see are checking against https://version.home-assistant.io/stable.json which I already blocked.

I never got around to implementing it so I’m not sure.

I don’t think I’ve ever seen a good explanation of what exactly the supervisor does.

Can anyone give me an informative but “readers digest” version of that?

https://developers.home-assistant.io/docs/en/architecture_hassio.html

1 Like

It’s especially annoying when you run hassio supervisor on something like unraid, as it stops the container and basically does nothing, making the home assistant non functional until I manually update to the newest version, also using the :latest tag never works as they don’t update it properly.

is there any working solution?

You can “disable” supervisor auto-updates by editing this file inside the supervisor docker container:
/usr/src/supervisor/supervisor/misc/tasks.py

In my case I am running hassio docker and supervisor on an ubuntu server:

docker exec -it hassio_supervisor sed -i 's/^RUN_UPDATE_SUPERVISOR = .*/RUN_UPDATE_SUPERVISOR = 2592000/g' /usr/src/supervisor/supervisor/misc/tasks.py

This extends the auto-update interval from 29100 sec (8 hrs and 5 min) to 2592000 sec (30 days).

you could also just delete the schedule for the auto-update task, in the same file mentioned above look for:

        self.jobs.add(
            self.sys_scheduler.register_task(
                self._update_supervisor, RUN_UPDATE_SUPERVISOR
            )
        )

You’ll still be able to update manually from the supervisor panel in home-assistant.
You’ll probably have execute the command again after supervisor updates.

1 Like

I tried to talk to some people on the discord to shine some light on this “issue”.
So I share the log from the conversation here.
You can also find it on the discord channel Home Assistant -> #homeassistant_supervised

discord log

johnjohnToday at 3:07 PM
What is the reason for auto-update of the supervisor is mandatory?
What goes wrong if the update is blocked when everything else is being kept at the same version? (By blocked I mean by some kind of intervention from me)

cogneatoToday at 3:09 PM
Supervisor is managing which versions of what things as far as the ecosystem goes. So blocking it will prevent update notifications for HA, addons, the OS (only HA OS)
You can block it.

johnjohnToday at 3:11 PM
@cogneato Ok, but it won’t be a problem blocking the auto-update of hypervisor when I don’t want to update anything else?

cogneatoToday at 3:12 PM
It won’t be a problem if you keep yourself informed
Everything will work as is

johnjohnToday at 3:15 PM
Ok, than why is this not an easy option to stop the auto-update (with a notice that this causes a stop in all update notifications)? The reason I ask is that some informed people don’t want to have to troubleshoot the updated hypervisor when they are away or don’t want to be trouble by it. (And this is of course only when the auto-update fails or creates another problem with the newly installed hypervisor)

TinkererToday at 3:17 PM
Probably because too many folks would disable it, then complain later when things no longer worked…

johnjohnToday at 3:19 PM
But the only thing that stops working is the:
Supervisor is managing which versions of what things as far as the ecosystem goes. So blocking it will prevent update notifications for HA, addons, the OS (only HA OS)
@cogneato
If I understood correctly

johnjohnToday at 3:27 PM
I’m just thinking about that more and more systems are getting more important in a home, so an option to disable a auto-update in a “production-system” is a very normal thing to do. Or maybe a warning that one should use a different system, like @Frenck mentioned, docker. (But that is a different story)
Cause bad updates happen.

These are just my thoughts.

johnjohnToday at 4:04 PM
@cogneato @Tinkerer
I will leave the question about auto-update. But thank you for the replies you gave! (Not sarcastic, I understand some things are difficult/not worth (or whatever reason) to explain to a “noob”)

TinkererToday at 4:04 PM
I don’t run this method myself, so all my knowledge is Nth hand :wink:

cogneatoToday at 4:05 PM
@johnjohn an option to stop auto-updates is something that is “on the list”

LudeeusToday at 4:06 PM
really?

cogneatoToday at 4:06 PM
well…not a high priority list

LudeeusToday at 4:06 PM
can we remove it?

cogneatoToday at 4:06 PM
just something to be considered as far as I can tell

LudeeusToday at 4:06 PM
I vote :thumbsdown:

johnjohnToday at 4:07 PM
@Ludeeus what are your reasons?

LudeeusToday at 4:07 PM
That is what ensure that the system is up to spec

johnjohnToday at 4:07 PM
After you read what wrote

TinkererToday at 4:07 PM
If you want full control, don’t use #homeassistant or #homeassistant_supervised
Use #homeassistant_container or #homeassistant_core

LudeeusToday at 4:08 PM
:point_up: :white_check_mark:

TinkererToday at 4:08 PM
You’re trying to turn something intended to self manage, and break that part…

johnjohnToday at 4:09 PM
Then it comes back to the information given when choosing a installation. Since the homepage is saying “Open source home automation that puts local control and privacy first.”
And it has been stated that pausing/blocking the auto-update does not break anything.

cogneatoToday at 4:14 PM
@johnjohn it doesn’t instantly break anything

cogneatoToday at 4:15 PM
local control is in reference to controlling smart devices locally. There are all sorts of excepetions there and completely dependent on what you choose to use

johnjohnToday at 4:17 PM
Yeah I understand the statement on the homepage is not something I can “use” for good effect, just wanted to push that angle.
I understand it doesn’t break something instantly.
Maybe it could be that when you pause the auto-update and then choose to un-pause and update 3 months later that could require some more logic that could cause something to break?
If not, then I don’t see why this could be an option like joining the beta channel. No sane normal-user would do that.

TinkererToday at 4:19 PM
You say that…
Spend more time here, you’ll soon reset what sane people do :stuck_out_tongue:

johnjohnToday at 4:20 PM
In good hope, but then you at least have a troubleshooting question to help.

TinkererToday at 4:20 PM
As I said, this is not the method if you want full control of it

LudeeusToday at 4:20 PM
If it is a option, there will be YT vids and “guides” that instruct you to disable it.
Then the user does it, have no idea why, other than “some guy said it”, and have no clue as to why stuff are not working/breaking

TinkererToday at 4:20 PM
And that is why this method was deprecated
Because too many guides written by uninformed folks helped others build broken systems

johnjohnToday at 4:22 PM
I think that is a weak argument looking at other solutions and where guides tell this and that.
But that is just my though!
I think it is enough for now about this topic. Thank you all for your replies!

3 Likes

On my install the file is actually /usr/src/supervisor/supervisor/misc/tasks.py

jep, on my installation too… seems like they changed the directory
thx, I edited the original post