The problem with the updater is that, essentially, restore.php spoke one language and the update JavaScript spoke another. In more technical terms, the encryption algorithm supported by restore.php was updated to be more secure but the update JavaScript was not updated correctly.
You suggest that the update JavaScript checks if restore.php speaks the same language and, if not, cancel the update. This is precisely what it's doing right now. However, from where that JavaScript is standing, it cannot know if the problem is with restore.php, a browser plugin (ad blockers do all sorts of weird things, for example), an antivirus / Internet security application on your machine, your ISP meddling with your traffic (yes, many ISPs do man-in-the-middle attacks to inject ads, notices and whatnot), a firewall / WAF on your web server's end, a PHP issue etc. In other words it cannot know if there is a temporary or permanent issue. So all it can do is say, sorry, I can't run the update because there's an error. It doesn't tell you what error exactly because it cannot know.
As I already told you, the white page does not happen in this case. The white page will only happen if there is some third party issue. Typically it's either a file not copied or a code cache issue. We try really hard to prevent a timeout issue which would lead to a hard crash of PHP and files not being copied, but that's not always feasible and depends on your host. We do try to clear the code caches, as long as the host has not blocked that feature.
Now, based on what you've said so far your issue looks like a code cache acting up WITHOUT the host giving us the option to reset it. I would also venture a guess that you had version 2.4.1 installed which is not affected by the update issue since, well, updates do seem to initiate. Why does the manual update fix your issue? I would assume that's because the filesystem cache gets wiped around that time, forcing the code cache to see the new files, fixing the "old code mixed with new code in PHP code cache memory" issue. Again, maybe ask your host to disable the code cache since you're talking about sites which clearly are not meant to get any IT support, i.e. the client will have zero clue how to reset a code cache after updating any kind of code on their site?
Nicholas K. Dionysopoulos
Lead Developer and Director
🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!