release: v0.2.3 — upload timeout fix#55
Merged
Merged
Conversation
… on large uploads) (#53) The HTTP read_timeout in ImmichClient was hardcoded to 120s and never read the configured UploadConfig.timeout_secs. On a slow backend (Orange Pi / Rockchip SBC), Immich can spend several minutes checksumming a 50GB file after the last upload byte is sent; no response bytes arrive during that window, so the 120s inactivity timeout fires and the client aborts with HTTP 499 (client closed request). Fix: - Add timeout_secs: u64 param to with_bandwidth_limit; use it as .read_timeout(Duration::from_secs(timeout_secs)) instead of 120. - ImmichClient::new defaults to 3600s (same as the new config default). - src/main.rs: passes config.upload.timeout_secs to with_bandwidth_limit. - src/app.rs: apply_new_config now calls with_bandwidth_limit (was ::new) so bandwidth limit AND timeout both track the live config on server change. - src/config.rs: UploadConfig::default().timeout_secs 300 -> 3600 (1 hour); doc comment updated to describe inactivity-only semantics and why 1 hour is appropriate for 50GB+ uploads to slow servers. No overall .timeout() added -- a 50GB upload at 10MB/s legitimately streams for ~83 minutes; an overall timeout would kill healthy transfers. Only the inactivity (read) timeout is configurable. Users can raise timeout_secs in settings if their server is slower still. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
#53 (wire upload timeout_secs through to read_timeout, fixes 499s on large uploads) landed on development without a version bump — and 0.2.2 was already released at the prior tag. Bump to 0.2.3 so the dev->release push tags a fresh v0.2.3 and ships the fixed binary. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Cuts v0.2.3. Ships #53 (wire upload timeout_secs through to the HTTP read_timeout, default 3600s, inactivity-only) which fixes the HTTP 499 client-closed failures on large (50GB+) uploads to a slow Immich server, plus the apply_new_config bandwidth-limit drop the same PR caught. Version bumped 0.2.2 -> 0.2.3 in #54.
Merge-commit (not squash) per the branching standard so release ancestry holds. The push to release triggers release.yml -> tags v0.2.3, builds the Windows binary, publishes the GitHub Release.
🤖 Generated with Claude Code