Skip to content

feat(gcs): Introduce retries#279

Merged
lcian merged 3 commits intomainfrom
lcian/feat/gcs-retries
Feb 13, 2026
Merged

feat(gcs): Introduce retries#279
lcian merged 3 commits intomainfrom
lcian/feat/gcs-retries

Conversation

@lcian
Copy link
Member

@lcian lcian commented Jan 28, 2026

Introduces retries for the GCS backend.

The whole retry behavior is very similar to the one we use for GCS: maximum 2 retries and we retry immediately.
The only difference is that we don't retry PUTs, as we would have to buffer possibly huge payloads to do so.

This is still not perfect, as GCP recommends using exponential backoff for retries.
While I agree that would be a better strategy, users are likely to set timeouts on their end, and waiting too much is likely to have them run into timeouts and therefore see the request as failed from their point of view.
I still see this as an improvement to handle transient network failures that could very well disappear by simply retrying immediately.

Close FS-188

@linear
Copy link

linear bot commented Jan 28, 2026

@lcian lcian marked this pull request as ready for review January 28, 2026 16:30
@lcian lcian requested a review from a team as a code owner January 28, 2026 16:30
@lcian lcian requested a review from matt-codecov January 28, 2026 17:15
Copy link
Contributor

@matt-codecov matt-codecov left a comment

Choose a reason for hiding this comment

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

i think not using exponential backoff is an acceptable tradeoff right now

@lcian lcian force-pushed the lcian/feat/bigtable-retries branch from 161dc72 to a799dc0 Compare February 2, 2026 19:29
Base automatically changed from lcian/feat/bigtable-retries to main February 2, 2026 23:44
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

Co-authored-by: lcian <17258265+lcian@users.noreply.github.com>
@jan-auer jan-auer force-pushed the lcian/feat/gcs-retries branch from 616c36d to 820ba60 Compare February 13, 2026 11:00
@lcian lcian merged commit c145c91 into main Feb 13, 2026
20 checks passed
@lcian lcian deleted the lcian/feat/gcs-retries branch February 13, 2026 12:05
jan-auer added a commit that referenced this pull request Feb 13, 2026
* origin/main:
  feat(gcs): Introduce retries (#279)
  build(deps): bump cryptography from 46.0.2 to 46.0.5 (#299)
  ref(service): Add metadata API, fix delete orphans, simplify BigTable backend (#298)
  ref(server): Add MeteredBody extractor and wrap_stream util (#293)
  meta(claude): Add default permissions for claude (#297)
  docs(clients): Restructure Rust and Python client READMEs (#294)
  ci: Add working directory to changelog-preview workflow (#295)
  feat(types): Add origin as built-in metadata field (#292)
  fix(metrics): Exclude health check endpoints from request metrics (#290)
  fix(service): Add backend tags to delete timing metric (#291)
  meta(ai): Add AGENTS file (#288)
  feat(killswitches): Add service filtering with x-downstream-service header (#287)
  build(deps): bump time from 0.3.44 to 0.3.47 (#285)
  meta(git): Ignore claude local settings (#286)

# Conflicts:
#	clients/rust/README.md
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.

3 participants