fix!: Throw error on invalid JSON in response #984
+14
−12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of changes
Currently, when a response contains invalid JSON, the error is caught & not rethrown, and the response body is treated as an empty JSON object
{}.This can lead to misleading responses, i.e. leading the caller to believe that the request succeeded but returned no results versus that it was not parseable.
guardthat handles the empty-response case now has some commentary to explain why it's there.NSErrorthat is thrown when JSON is invalid, and converting it to a successful response. That catch is now removed.{}. That behavior is unchanged.To be determined: figure out exactly what error should be thrown back to the caller, create it and throw it.
This is a breaking change in that it alters the SDK's behavior from "empty success" to throwing when unparseable data is encountered in a response.
Scope
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.