First press of "Restart & Update" button does not work, only second attempt works
On the Librem 5, when updates have been downloaded, the user typically tries to click the "Restart & Update" button directly. However, the Librem 5 does not in fact restart and update in response to that, it appears to do nothing at all. Then, when the user presses the same button a second time, then it works.
I have seen this many times myself, the problem happens the same way every time. Gardiner Bryant also encountered it, in this video at 6:50 he tries the "Restart & Update" button and nothing happens, so a few seconds later he presses it again and then it works: https://odysee.com/@TheLinuxGamer:f/gb-evergreen:a
Reproducing this is a little awkward since there are no updates after the reboot, but it is reproducible if you for example reflash from a slightly old image so that there are updates available, then this will happen the same way every time.
From looking at the source code I have a theory about approximately what happens, but I'm not sure what would be a good way of fixing it. It looks like in src/gs-updates-section.c the label of the button is set to "Restart & Update" by a call to gtk_button_set_label(). However, it does not seem like the actual function of the button gets updated at the same time. There is an if-statement a few lines above the gtk_button_set_label() call, where either "update" or "download" can be chosen. I think it means that the function of the button can be either "update" or "download" but the label on the button is always set to "Restart & Update" regardless. So my theory is that when the problem happens, the function is set to "download" and the label is set to "Restart & Update". The function of the button and the label are not in sync.