If this wasn’t clear in my post above, I agree with you on the catch 22 of “fail before checking”
actually, we’ll want something like a “retry” option, to cover all the cases where the thing that you’re using to ask for the refresh is (part of) the thing you’re asking to refresh. GNOME Software, or a terminal emulator, or a shell, or screen, or an IDE, …
to be clear that’s not a use of “synchronous” that other would understand.