-
-
Notifications
You must be signed in to change notification settings - Fork 440
Description
Checklist
- I am using an up-to-date version.
- I have read the documentation.
- I have searched existing issues.
TagStudio Version
HEAD
Operating System & Version
Kali-rolling (Linux 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025)
Description
The update notification introduced in #1166 expects the GitHub API to always respond with OK and a valid JSON body.
If it doesn't, e.g. because there's no internet connection, the API is down or doesn't respond in time, an exception will be raised in QtDriver putting the program into a sorta crashed state.
The behavior depends on how TagStudio was launched:
If launched from a PyCharm RunConfiguration, no window is shown and the exception shown below is printed to the Terminal.
If launched from the command line or the portable PyInstaller executable, the window is shown and behaves as expected, as long as the about modal is not opened.
If opened, it will hang the program until the API request fails and no modal will be shown. Everything else seems to work normally.
In both cases, TagStudio Frontend (Qt) Crashed! Press Enter to Continue... will be printed to the terminal and pressing enter will quit TagStudio.
Expected Behavior
The Update notification should not prevent TagStudio or the about modal from launching
Steps to Reproduce
- Check out the repository
- Unplug your ethernet cable / disable WiFi
- Launch TagStudio
Logs
Launched via the portable executable
Traceback (most recent call last):
File "urllib3/connection.py", line 198, in _new_conn
File "urllib3/util/connection.py", line 60, in create_connection
File "socket.py", line 978, in getaddrinfo
socket.gaierror: [Errno -3] Temporary failure in name resolution
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "urllib3/connectionpool.py", line 787, in urlopen
File "urllib3/connectionpool.py", line 488, in _make_request
File "urllib3/connectionpool.py", line 464, in _make_request
File "urllib3/connectionpool.py", line 1093, in _validate_conn
File "urllib3/connection.py", line 753, in connect
File "urllib3/connection.py", line 205, in _new_conn
urllib3.exceptions.NameResolutionError: <urllib3.connection.HTTPSConnection object at 0x7620cc050320>: Failed to resolve 'api.github.com' ([Errno -3] Temporary failure in name resolution)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "requests/adapters.py", line 486, in send
File "urllib3/connectionpool.py", line 841, in urlopen
File "urllib3/util/retry.py", line 519, in increment
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.github.com', port=443): Max retries exceeded with url: /repos/TagStudioDev/TagStudio/releases/latest (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7620cc050320>: Failed to resolve 'api.github.com' ([Errno -3] Temporary failure in name resolution)"))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "main.py", line 72, in main
File "qt/ts_qt.py", line 598, in start
File "core/ts_core.py", line 198, in get_most_recent_release_version
File "requests/api.py", line 73, in get
File "requests/api.py", line 59, in request
File "requests/sessions.py", line 589, in request
File "requests/sessions.py", line 703, in send
File "requests/adapters.py", line 519, in send
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.github.com', port=443): Max retries exceeded with url: /repos/TagStudioDev/TagStudio/releases/latest (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7620cc050320>: Failed to resolve 'api.github.com' ([Errno -3] Temporary failure in name resolution)"))
2025-12-29 14:38:46 [info ]
TagStudio Frontend (Qt) Crashed! Press Enter to Continue...