fix: Fix bad requests when retrying with streams in multi-part requests#212
Merged
Merged
Conversation
cameronwaterman
approved these changes
May 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What does this Pull Request accomplish?
This change introduces a request handler that seeks any seekable stream Part for multi-part requests to the start of the stream when the stream is being retried, via a decorator.
This change also adds 429 retries to the notebook artifacts client to align to other clients, and implementing the same stream seek to start on retry fix.
Why should this Pull Request be merged?
The current behavior for multi-part stream requests that are retried does not seek the stream back to the beginning of the stream. This results in retries continuing from however far into the stream the request got to before an error, often resulting in malformed requests.
This was evident in intermittent notebook client integration tests that hit and retried 429 errors. These tests would often fail with a cryptic malformed Part error.
What testing has been done?
New tests have been added that explicitly covers the retry cases on 429 errors and verifies the content arrives correctly.