Google sso read operation timed out

We’ve got below error regularly for a couple of days when user tried to login using google sso

Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: #033[1;93m[sentry-gate-main-1]#033[0m#033[1m[2025-08-08 08:59:42,727]#033[0m#033[1;91m[ERROR]#033[0m Google auth check error
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: #033[1;91mTraceback (most recent call last):#033[0m
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/site-packages/pritunl/user/user.py”, line 405, in sso_auth_check
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: valid, google_groups = sso.verify_google(self.email)
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/site-packages/pritunl/sso/google.py”, line 43, in verify_google
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: results = service.groups().list(userKey=user_email,
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/site-packages/googleapiclient/_helpers.py”, line 130, in positional_wrapper
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: return wrapped(*args, **kwargs)
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/site-packages/googleapiclient/http.py”, line 923, in execute
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: resp, content = _retry_request(
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/site-packages/googleapiclient/http.py”, line 222, in _retry_request
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: raise exception
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/site-packages/googleapiclient/http.py”, line 191, in _retry_request
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: resp, content = http.request(uri, method, *args, **kwargs)
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/site-packages/google_auth_httplib2.py”, line 218, in request
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: response, content = self.http.request(
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/site-packages/httplib2/init.py”, line 1720, in request
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: (response, content) = self._request(
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/site-packages/httplib2/init.py”, line 1440, in _request
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: (response, content) = self._conn_request(conn, request_uri, method, body, headers)
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/site-packages/httplib2/init.py”, line 1392, in _conn_request
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: response = conn.getresponse()
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/http/client.py”, line 1377, in getresponse
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: response.begin()
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/http/client.py”, line 320, in begin
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: version, status, reason = self._read_status()
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/http/client.py”, line 281, in _read_status
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: line = str(self.fp.readline(_MAXLINE + 1), “iso-8859-1”)
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/socket.py”, line 716, in readinto
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: return self._sock.recv_into(b)
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/ssl.py”, line 1275, in recv_into
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: return self.read(nbytes, buffer)
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: File “/usr/lib/pritunl/usr/lib/python3.9/ssl.py”, line 1133, in read
Aug 8 09:00:07 sentry-gate-main-1 pritunl[4500]: return self._sslobj.read(len, buffer)

I’m not sure if it’s pritunl issue or google issue but anyone have an idea on how do I troubleshoot

1 Like

This is likely an incorrect API key. Verify the Google JSON Private Key is configured correctly in the top right settings and the permissions are correct in the Google Workspace settings.

I’ve verify that key is correct and we can login if we retry multiple times, I don’t think key is the issue.

Same issue here. We have a valid, google_groups = sso.verify_google(self.email) call timing out. This has been happening periodically since approximately Aug 08 at 11:51:37 UTC.

If the issue is intermittent run the command below. This will disable the hourly single sign-on check for connected users.

sudo pritunl set app.sso_connection_check false

An update has been released Pritunl v1.32.4349.59 that will implement rate limiting and remove redundant usage of the Google Workspace API. This should fix issues with active connections dropping but new connection requests need the API validation. If the API issues continue it may take multiple connection attempts for a user to connect. If set commands were used to disable single sign-on checks temporarily, run the commands below after updating to revert the single sign-on skip options to the default values. These commands can be run even if no changes were made to verify the values have the correct default configuration.

sudo pritunl unset app.sso_connection_check
sudo pritunl unset user.skip_remote_sso_check