Fix bug when commit session API endpoint returns 202 HTTP status code #132
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.
Problem
Sometimes when we commit chunked uploads session Box API responds with 202 HTTP status code. In this case Box response is empty so parsed response is nil and we get an error when we try to read from parsed response:
https://github.com/casperbrike/boxr/blob/f71a97ba8f79bffb3bd3c36defb945ac17d8e081/lib/boxr/chunked_uploads.rb#L196-L198
Tech changes
with_retry_on_202
that yields a block (expecting that a call to Box API will passed in a block), checks response status, if it's 202 then sleeps for value specified inretry-after
response header (as Box' documentation recommends): https://developer.box.com/guides/uploads/chunked/commit-session/with_retry_on_202