Unhandled exception in check_status() crashes updater thread silently on network error #10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
check_status()callsrequests.get()without wrapping it in a try/except. Any network-level exception (ConnectionError,Timeout,SSLError, etc.) propagates uncaught out ofcheck_status(), which is called at the end ofupdater(). An unhandled exception in athreading.Threadtarget is swallowed after printing a traceback; it leaves the launcher in a permanently disabled state (play_buttonstays disabled with text "Checking...").Location
4lbion.py, lines 233–244 (check_status()), called from line 771 insideupdater()Risk
A transient network error during the status check (which happens every time the updater runs) makes the Play button permanently disabled for the rest of the session, even if the game is fully up-to-date. The user sees no error dialog and cannot play the game until they restart the launcher.
Suggested fix direction
Wrap the
requests.get()call incheck_status()in a try/except that catchesrequests.exceptions.RequestExceptionand returns a safe default (e.g.,Trueto allow play, orFalsewith a user-visible warning):Severity
minor
Found by
Automated audit by Claude Code