-
Notifications
You must be signed in to change notification settings - Fork 45
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Describe the bug
Occasionally, an API request fails due to an intermittent network error, and the SDK raises a TypeError when attempting to parse the error response as JSON. An example error I've observed had the following response body:
upstream connect error or disconnect/reset before headers. reset reason: connection failure
Expected behavior
I'm not sure how best to handle this scenario, but I think raising a more semantically-meaningful error would be preferable, as that would help clients implement reasonable error-handling.
To Reproduce
Because this is caused by intermittent network failures, I'm not sure how to reliably reproduce the issue.
Backtrace
Here's an extract from the backtrace of such an error:
/gems/square.rb-19.0.0.20220420/lib/square/api_helper.rb:130 in rescue in json_deserialize
/gems/square.rb-19.0.0.20220420/lib/square/api_helper.rb:127 in json_deserialize
/gems/square.rb-19.0.0.20220420/lib/square/api/cards_api.rb:58 in list_cards
Caused by JSON::ParserError: 783: unexpected token at 'upstream connect error or disconnect/reset before headers. reset reason: connection failure'
Square SDK version
19.0.0.20220420
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request