Improve handling of bad JSON from comments service
Instead of allowing the JSONDecodeError to escape, raise an error indicating the request id and containing the first 100 characters of the response to aid investigation.
This commit is contained in:
@@ -104,7 +104,15 @@ def perform_request(method, url, data_or_params=None, raw=False,
|
||||
if raw:
|
||||
return response.text
|
||||
else:
|
||||
data = response.json()
|
||||
try:
|
||||
data = response.json()
|
||||
except ValueError:
|
||||
raise CommentClientError(
|
||||
u"Comments service returned invalid JSON for request {request_id}; first 100 characters: '{content}'".format(
|
||||
request_id=request_id,
|
||||
content=response.text[:100]
|
||||
)
|
||||
)
|
||||
if paged_results:
|
||||
dog_stats_api.histogram(
|
||||
'comment_client.request.paged.result_count',
|
||||
|
||||
Reference in New Issue
Block a user