Re-using a resource will cause the first call on an expired token to fail, instead of refreshing the token.
Creating a new resource for every call will automatically refresh the token as expected so as a workaround, one can simply create the resource for every call.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "\lib\site-packages\pysnow\resource.py", line 104, in get
return self._request.get(query, limit, offset, fields, stream)
File "\lib\site-packages\pysnow\request.py", line 75, in get
return self._get_response('GET', stream=stream)
File "\lib\site-packages\pysnow\request.py", line 44, in _get_response
response = self._session.request(method, self._url, stream=use_stream, params=params, **kwargs)
File "\lib\site-packages\requests_oauthlib\oauth2_session.py", line 343, in request
self.auto_refresh_url, auth=auth, **kwargs
File "\lib\site-packages\requests_oauthlib\oauth2_session.py", line 309, in refresh_token
self.token = self._client.parse_request_body_response(r.text, scope=self.scope)
File "\lib\site-packages\oauthlib\oauth2\rfc6749\clients\base.py", line 411, in parse_request_body_response
self.token = parse_token_response(body, scope=scope)
File "\lib\site-packages\oauthlib\oauth2\rfc6749\parameters.py", line 379, in parse_token_response
validate_token_parameters(params)
File "\lib\site-packages\oauthlib\oauth2\rfc6749\parameters.py", line 389, in validate_token_parameters
raise MissingTokenError(description="Missing access token parameter.")
oauthlib.oauth2.rfc6749.errors.MissingTokenError: (missing_token) Missing access token parameter.