If the account or token is invalid, an expected response with status_code 401 is returned, but the reponse._content is a string Unauthorized, not the expected string {error: <message>}. Thus line 114 content = json.loads(response._content) in jupiterone/client.py will cause json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
| File "/usr/local/lib/python3.9/site-packages/jupiterone/client.py", line 203, in query_v1
| return self._cursor_query(
| File "/usr/local/lib/python3.9/site-packages/jupiterone/client.py", line 135, in _cursor_query
| response = self._execute_query(query=CURSOR_QUERY_V1, variables=variables)
| File "/usr/local/lib/python3.9/site-packages/retrying.py", line 49, in wrapped_f
| return Retrying(*dargs, **dkw).call(f, *args, **kw)
| File "/usr/local/lib/python3.9/site-packages/retrying.py", line 206, in call
| return attempt.get(self._wrap_exception)
| File "/usr/local/lib/python3.9/site-packages/retrying.py", line 247, in get
| six.reraise(self.value[0], self.value[1], self.value[2])
| File "/usr/local/lib/python3.9/site-packages/six.py", line 719, in reraise
| raise value
| File "/usr/local/lib/python3.9/site-packages/retrying.py", line 200, in call
| attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
| File "/usr/local/lib/python3.9/site-packages/jupiterone/client.py", line 114, in _execute_query
| content = json.loads(response._content)
| File "/usr/local/lib/python3.9/json/__init__.py", line 346, in loads
| return _default_decoder.decode(s)
| File "/usr/local/lib/python3.9/json/decoder.py", line 337, in decode
| obj, end = self.raw_decode(s, idx=_w(s, 0).end())
| File "/usr/local/lib/python3.9/json/decoder.py", line 355, in raw_decode
| raise JSONDecodeError("Expecting value", s, err.value) from None
| json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Description
If the account or token is invalid, an expected response with status_code 401 is returned, but the reponse._content is a string
Unauthorized, not the expected string{error: <message>}. Thus line 114content = json.loads(response._content)in jupiterone/client.py will causejson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)Reproduction
Environment