System updates are not installed in game mode

System update does not work with Steam. When I click "install" button, the computer thinks for a couple of seconds and then offers to reboot the system. After rebooting nothing happens and Steam again offers to install the update. The system update shortcut in desktop mode works fine. specs: 7900xtx 7800x3d asrock b650 pro rs DDR5 6400MHz, 32Gb Dual Boot nvme ssd (windows on sata ssd) fast boot (both): disable
Solution:
Okay, then we wait.
Jump to solution
78 Replies
wolfyreload
wolfyreload2mo ago
try log into desktop mode, open the terminal and run brh list to list all the available images of bazzite then run rpm-ostree status and check what image you are on. If you on an older release type ujust update and hopefully you'll be able to see why your system isn't updating
Грюндик
ГрюндикOP2mo ago
No description
wolfyreload
wolfyreload2mo ago
Latest version is stable-41.20250301 and can see in your screenshot that you are on that version. You are fully up to date
Грюндик
ГрюндикOP2mo ago
Thank you for the obvious information. Updating via Steam how do I fix it? It is not very convenient to go to the desktop every time
wolfyreload
wolfyreload2mo ago
Difficult to tell, the steam update and the desktop update run the same mechanism undernearth. Is it still showing an update in steam even though you are up to date? If not see if the issue occurs again
HikariKnight
HikariKnight2mo ago
the updater in steam will also show up when there is a steam update and all the updater in steam does is run a script and expects specific return values if valve changes that they dont inform anyone and we will have to just adapt to that. thats why we say use the updater in desktop if you want actual information about what is being done if the one in steam is misbehaving
OptimumSlinky
OptimumSlinky2mo ago
I encountered this a day or so ago as well. Going into desktop and running ujust update resolved the phantom update issue in game mode
Грюндик
ГрюндикOP2mo ago
How then do you like the idea of writing a simple extension for the loader deck, the whole point of which is to be exactly the same system update shortcut that is present in desktop mode and which displays a terminal area with exactly the same output of all the information that is output to the terminal when updating from desktop mode?
HikariKnight
HikariKnight2mo ago
personally, i ideally want to avoid decky loader being a requirement since its prone to breaking not just itself but also steam as a whole from experience, in such a way you get stuck in gamemode and gamescope freezes and you dont get to go to a tty, very fun to help people with that one when it happens 🙃
Грюндик
ГрюндикOP2mo ago
I've put all sorts of shit from it, but I've never had it hang so badly.
HikariKnight
HikariKnight2mo ago
i have had to help a handful of people with this in the past. i like decky and all and i use it, i just dont want it to be a requirement for bazzite
Грюндик
ГрюндикOP2mo ago
So don't make it mandatory. I'm not suggesting to remove the shortcut from the desktop mode, but to add one additional shortcut directly to the game mode, so that the user has a choice not to switch to the desktop every time to update the system. There's another update out today. Because of a measly 1 GB, I had to go to the desktop.
HikariKnight
HikariKnight2mo ago
if you can trigger the issue consistently, try debug steamos-update thats the script run by steam i cant trigger it consistently so i cant debug you would run this while gamemode is running so best would be to test over tty and i think it runs in sudo context but dont quote me on that as there are a bunch of polkit rules involved for gamemode
IAMTHELAW
IAMTHELAW2mo ago
I ran that, and I got the following error:
Error: [Errno 2] No such file or directory
HikariKnight
HikariKnight2mo ago
did you run it with gamemode running in a different tty? because i think that error is from it looking for hhd.steamos or something
IAMTHELAW
IAMTHELAW2mo ago
I ssh'd into my deck while it's in gamemode
HikariKnight
HikariKnight2mo ago
even better
IAMTHELAW
IAMTHELAW2mo ago
so it's an expected error?
HikariKnight
HikariKnight2mo ago
unsure think its either @Kyle Gospo or @antheas that might have added that portion, most likely kyle trying to track down the repo for that file
antheas
antheas2mo ago
hhd.steamos [-h] {steamos-select-branch,steamos-update} [--fallback] [keys ...]

Handheld Daemon steamos polkit stub
Allows mimicking the polkit behavior of SteamOS to perform updates, etc.
For specifics, refer to SteamOS. The --fallback option is provided which will
return 20 if handheld daemon cannot update the system. In this case, you can
use the legacy fallback to update the system.

Commands:
steamos-select-branch: Select a branch that running steamos-update will update to.
Aliased to steamos-branch-select. Options are: rel, rc, beta, main, bc, -l, -c.
steamos-update: Perform an update.
hhd.steamos [-h] {steamos-select-branch,steamos-update} [--fallback] [keys ...]

Handheld Daemon steamos polkit stub
Allows mimicking the polkit behavior of SteamOS to perform updates, etc.
For specifics, refer to SteamOS. The --fallback option is provided which will
return 20 if handheld daemon cannot update the system. In this case, you can
use the legacy fallback to update the system.

Commands:
steamos-select-branch: Select a branch that running steamos-update will update to.
Aliased to steamos-branch-select. Options are: rel, rc, beta, main, bc, -l, -c.
steamos-update: Perform an update.
my steam updater works
IAMTHELAW
IAMTHELAW2mo ago
So what could the issue be ? any way to get a clearer log?
HikariKnight
HikariKnight2mo ago
bash -x /usr/bin/steamos-update see where in the bash script the error is generated
IAMTHELAW
IAMTHELAW2mo ago
alright, one sec
antheas
antheas2mo ago
bazzite@fedora:~$ sudo steamos-update
No updates available (ready)
bazzite@fedora:~$ sudo steamos-update
No updates available (ready)
you have layered lack so hhd will not work lact
IAMTHELAW
IAMTHELAW2mo ago
okay, after looking into the .steamos-update.logfile, this was inside:
Job for ublue-update-force.service failed because the control process exited with error code.
See "systemctl status ublue-update-force.service" and "journalctl -xeu ublue-update-force.service" for details.
Job for ublue-update-force.service failed because the control process exited with error code.
See "systemctl status ublue-update-force.service" and "journalctl -xeu ublue-update-force.service" for details.
HikariKnight
HikariKnight2mo ago
hmm if i didnt have to be pinned to 6.12 atm my main system might be affected
No description
IAMTHELAW
IAMTHELAW2mo ago
ran, systemctl status ublue-update-force.service
× ublue-update-force.service - Force Universal Blue Update Oneshot Service
Loaded: loaded (/usr/lib/systemd/system/ublue-update-force.service; static)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: failed (Result: exit-code) since Mon 2025-03-03 21:27:24 CET; 1min 51s ago
Invocation: 3cd2864c759d4014ba30965a2d26b9f0
Process: 4981 ExecStart=/usr/bin/ublue-update --force (code=exited, status=101)
Main PID: 4981 (code=exited, status=101)
Mem peak: 36.9M
CPU: 1.115s

Mar 03 21:27:19 fedora systemd[1]: Starting ublue-update-force.service - Force Universal Blue Update Ones>
Mar 03 21:27:22 fedora ublue-update[4981]: [2025-03-03 21:27:22,819] ublue_update.update_checks.system:IN>
Mar 03 21:27:22 fedora ublue-update[4981]: [2025-03-03 21:27:22,820] ublue_update.cli:INFO | System passe>
Mar 03 21:27:23 fedora sudo[5015]: root : PWD=/ ; USER=root ; COMMAND=/usr/bin/dnf upgrade
Mar 03 21:27:23 fedora sudo[5015]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Mar 03 21:27:23 fedora sudo[5015]: pam_unix(sudo:session): session closed for user root
Mar 03 21:27:24 fedora systemd[1]: ublue-update-force.service: Main process exited, code=exited, status=1>
Mar 03 21:27:24 fedora systemd[1]: ublue-update-force.service: Failed with result 'exit-code'.
Mar 03 21:27:24 fedora systemd[1]: Failed to start ublue-update-force.service - Force Universal Blue Upda>
Mar 03 21:27:24 fedora systemd[1]: ublue-update-force.service: Consumed 1.115s CPU time, 36.9M memory pea>
× ublue-update-force.service - Force Universal Blue Update Oneshot Service
Loaded: loaded (/usr/lib/systemd/system/ublue-update-force.service; static)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: failed (Result: exit-code) since Mon 2025-03-03 21:27:24 CET; 1min 51s ago
Invocation: 3cd2864c759d4014ba30965a2d26b9f0
Process: 4981 ExecStart=/usr/bin/ublue-update --force (code=exited, status=101)
Main PID: 4981 (code=exited, status=101)
Mem peak: 36.9M
CPU: 1.115s

Mar 03 21:27:19 fedora systemd[1]: Starting ublue-update-force.service - Force Universal Blue Update Ones>
Mar 03 21:27:22 fedora ublue-update[4981]: [2025-03-03 21:27:22,819] ublue_update.update_checks.system:IN>
Mar 03 21:27:22 fedora ublue-update[4981]: [2025-03-03 21:27:22,820] ublue_update.cli:INFO | System passe>
Mar 03 21:27:23 fedora sudo[5015]: root : PWD=/ ; USER=root ; COMMAND=/usr/bin/dnf upgrade
Mar 03 21:27:23 fedora sudo[5015]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Mar 03 21:27:23 fedora sudo[5015]: pam_unix(sudo:session): session closed for user root
Mar 03 21:27:24 fedora systemd[1]: ublue-update-force.service: Main process exited, code=exited, status=1>
Mar 03 21:27:24 fedora systemd[1]: ublue-update-force.service: Failed with result 'exit-code'.
Mar 03 21:27:24 fedora systemd[1]: Failed to start ublue-update-force.service - Force Universal Blue Upda>
Mar 03 21:27:24 fedora systemd[1]: ublue-update-force.service: Consumed 1.115s CPU time, 36.9M memory pea>
HikariKnight
HikariKnight2mo ago
wait is it trying to run dnf upgrade
IAMTHELAW
IAMTHELAW2mo ago
why would it be doing that ? shouldn't it use rpm-ostree upgrade or update*
HikariKnight
HikariKnight2mo ago
yep, dnf goes to a "no bad, we removed this footgun for your safety" script :clueless:
termdisc
termdisc2mo ago
dnf used to just be an alias for rpm-ostree, so if that exact script used to work before, it wouldn't today
HikariKnight
HikariKnight2mo ago
exactly
IAMTHELAW
IAMTHELAW2mo ago
So who do I point my pitchfork towards?
antheas
antheas2mo ago
ok so you blew up the updater not me lmao you know we got a guy today that installed using a march 2024 iso like man dont mess with the updater
IAMTHELAW
IAMTHELAW2mo ago
I installed it like a month ago using the latest available image on the website
antheas
antheas2mo ago
not your fault now we will have a second generation of stuck people fix it now
HikariKnight
HikariKnight2mo ago
the updater shouldnt point to dnf to begin with so this is a bug on that end
antheas
antheas2mo ago
@Kyle Gospo push on prod moment and that has been there 2 weeks now and affects all htpcs
Kyle Gospo
Kyle Gospo2mo ago
I didn't touch the updater wym Literally updated my HTPC last night no issues
antheas
antheas2mo ago
why is it calling dnf and dying
Kyle Gospo
Kyle Gospo2mo ago
it's the same hhd or ublue-update
HikariKnight
HikariKnight2mo ago
updater seems to try run /usr/bin/dnf upgrade for some people though 🤔
Kyle Gospo
Kyle Gospo2mo ago
no clue why, that's not a change we made let's find out
antheas
antheas2mo ago
so if you have layered packages its dying now?
Kyle Gospo
Kyle Gospo2mo ago
I have layered packages
antheas
antheas2mo ago
at least if users have layered packages they can figure it out ima shitpost the docker post anyway
termdisc
termdisc2mo ago
have you updated it since then?
IAMTHELAW
IAMTHELAW2mo ago
I haven't layered any packages of course
termdisc
termdisc2mo ago
can you run rpm-ostree status?
IAMTHELAW
IAMTHELAW2mo ago
yes, one sec
HikariKnight
HikariKnight2mo ago
does bazzite still use a modified ublue-update? i vaguely remember you mentioning that somewhere to me
Kyle Gospo
Kyle Gospo2mo ago
yes, and it hasn't been touched in months
IAMTHELAW
IAMTHELAW2mo ago
State: idle
Deployments:
● ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck-gnome:stable
Digest: sha256:199d1f38051bd59f94ac4b2ffb470b2d5a5faece336e849f6f835038720a68a9
Version: 41.20250301.1 (2025-03-03T05:06:23Z)

ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck-gnome:stable
Digest: sha256:4f5c21665c6ad838bf2cf399f64d4d6c63a45fdcfc68f4d8e75b8e2cbda61e41
Version: 41.20250301 (2025-03-01T07:56:31Z)
State: idle
Deployments:
● ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck-gnome:stable
Digest: sha256:199d1f38051bd59f94ac4b2ffb470b2d5a5faece336e849f6f835038720a68a9
Version: 41.20250301.1 (2025-03-03T05:06:23Z)

ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck-gnome:stable
Digest: sha256:4f5c21665c6ad838bf2cf399f64d4d6c63a45fdcfc68f4d8e75b8e2cbda61e41
Version: 41.20250301 (2025-03-01T07:56:31Z)
Kyle Gospo
Kyle Gospo2mo ago
however if you have no layers it uses HHD which calls bootc
antheas
antheas2mo ago
htpc no hhd
Kyle Gospo
Kyle Gospo2mo ago
does HHD the service need to be enabled for the update part to work?
HikariKnight
HikariKnight2mo ago
where is the repo for it, i have some time before bed so i can look at least
Kyle Gospo
Kyle Gospo2mo ago
HHD is still present
antheas
antheas2mo ago
yes
Kyle Gospo
Kyle Gospo2mo ago
regardless it's my namespace atm again, untouched
antheas
antheas2mo ago
i made it so it fallbacks without hhd
Kyle Gospo
Kyle Gospo2mo ago
would it make sense to uncouple the updater from the service or enable the service everywhere?
antheas
antheas2mo ago
service still needs a bit of work to be enabled anywhere lets do that work soon the updater cant work without it because its bound to the GUI you dont need me to do bootc update anyway you can even port the 10 lines of code that receive the progress, its not that hard perhaps you should wait until we fix it to work with the latest bootc
Kyle Gospo
Kyle Gospo2mo ago
Yeah let's do that Anyway whatever is going on here I'm quite curious, I have been testing the living shit out of the framework desktop and I have had no failed updates And that is across every update we pushed in the last couple months
HikariKnight
HikariKnight2mo ago
same, my htpc is fine and my legion go ran into this once yesterday both on the same image
IAMTHELAW
IAMTHELAW2mo ago
Well, I am glad to help out and this is quite a fresh image that I installed, and haven't done any fuckery with my system, or layered anything, so how can I help any further?
HikariKnight
HikariKnight2mo ago
i dont count my main pc since thats a custom image anyway
Kyle Gospo
Kyle Gospo2mo ago
we'll dig into the behavior of ublue-update a bit and get back to you something sus here
IAMTHELAW
IAMTHELAW2mo ago
alright, is there anything else I can do on my end or should do or is this enough? I only use bazzite for my deck, for my other devices I run bluefin, so this is a new issue for me
HikariKnight
HikariKnight2mo ago
kyle will most likely ping if he needs more info, at least we have tracked it down to some weirdness in ublue-update
IAMTHELAW
IAMTHELAW2mo ago
alright, thank you for being so kindly helpful 🙂 I'll be in touch then.
Грюндик
ГрюндикOP2mo ago
Error: [Errno 2] No such file or directory
0%
100%
Error: [Errno 2] No such file or directory
0%
100%
The command was run in game mode in tty2
HikariKnight
HikariKnight2mo ago
we found a possible culprit earlier thanks to IAMTHELAW Mar 03 21:27:23 fedora sudo[5015]: root : PWD=/ ; USER=root ; COMMAND=/usr/bin/dnf upgrade ublue-update for some reason tries to run dnf upgrade on some systems and since dnf was replaced with a "no bad, read documentation" script, this obviously will fail
Грюндик
ГрюндикOP2mo ago
Should I just wait for one of the next system updates or is there any way to fix this myself?
HikariKnight
HikariKnight2mo ago
ublue-update is in /usr so you will have to wait. i think the current priority for kyle atm is prepping for SCALE we are considering replacing ublue-update with uupd as thats finished i believe now, means kyle doesnt have to maintain a custom version anymore.
Solution
Грюндик
Грюндик2mo ago
Okay, then we wait.
HikariKnight
HikariKnight2mo ago
essentially when dnf5 landed in upstream, the rpm-ostree cliwrap got deprecated meaning that dnf no longer linked to rpm-ostree it instead linked to dnf5 which cannot do layering yet so we replaced dnf with a script that tells people "dont do this, read our documentation" and for some reason ublue-update decided that dnf is the right thing to run for updates instead of rpm-ostree which worked before because of rpm-ostree cliwrap essentially its a chain of events that exposed a potential issue in ublue-update that has not been spotted before

Did you find this page helpful?