Skip to content

fix: retry stream read errors in SimpleDownloader#432

Closed
agoncharov-reef wants to merge 7 commits into
masterfrom
retry-on-mid-stream-read-errors
Closed

fix: retry stream read errors in SimpleDownloader#432
agoncharov-reef wants to merge 7 commits into
masterfrom
retry-on-mid-stream-read-errors

Conversation

@agoncharov-reef

@agoncharov-reef agoncharov-reef commented Jun 15, 2026

Copy link
Copy Markdown

SimpleDownloader already had range-based retry logic for truncated downloads (e.g. when the server closes the connection mid-stream), but ChunkedEncodingError and ContentDecodingError raised during iter_content bypassed that path and failed the download immediately.

This PR catches those exceptions during both the initial read and follow-up range requests, logs them at debug level, and lets the existing retry loop resume from response.raw.tell().

@kacper-wolkiewicz-reef kacper-wolkiewicz-reef left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some doubts worth checking I think?

Comment thread b2sdk/_internal/transfer/inbound/downloader/simple.py Outdated
Comment thread b2sdk/_internal/transfer/inbound/downloader/simple.py
Comment thread b2sdk/_internal/transfer/inbound/downloader/simple.py
Comment thread b2sdk/_internal/transfer/inbound/downloader/simple.py
@agoncharov-reef agoncharov-reef force-pushed the retry-on-mid-stream-read-errors branch from 6da7cf1 to 24b3e57 Compare July 1, 2026 15:34

@kacper-wolkiewicz-reef kacper-wolkiewicz-reef left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yet some more cases to verify

Comment thread test/unit/internal/transfer/test_downloaded_file.py
Comment thread b2sdk/_internal/file_version.py
Comment thread b2sdk/_internal/transfer/inbound/downloaded_file.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants