Skip to content

Retry AWS (S3) requests for network errors#46

Open
rdettai-sk wants to merge 1 commit into
sekoiafrom
retry-on-dispatch-failure
Open

Retry AWS (S3) requests for network errors#46
rdettai-sk wants to merge 1 commit into
sekoiafrom
retry-on-dispatch-failure

Conversation

@rdettai-sk
Copy link
Copy Markdown
Collaborator

Description

It is quite surprising that dispatch failures are not retried, they typically occur with:

  • DNS resolution failures (misconfigured endpoint)
  • Connection refused (wrong port, service not running)
  • TLS/SSL handshake failures (certificate issues)
  • Network unreachable (routing problems)

How was this PR tested?

Describe how you tested this PR.

Copilot AI review requested due to automatic review settings May 13, 2026 12:33
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates Quickwit’s AWS error classification so that S3 SDK “dispatch failures” (request send/connection-level failures) are treated as retryable by Quickwit’s aws_retry wrapper, improving resilience to transient network errors.

Changes:

  • Mark aws_sdk_s3::error::SdkError::DispatchFailure(_) as retryable in the AwsRetryable implementation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 36 to 40
SdkError::ConstructionFailure(_) => false,
SdkError::TimeoutError(_) => true,
SdkError::DispatchFailure(_) => false,
SdkError::DispatchFailure(_) => true,
SdkError::ResponseError(_) => true,
SdkError::ServiceError(error) => error.err().is_retryable(),
@rdettai-sk rdettai-sk force-pushed the retry-on-dispatch-failure branch from 98f69e5 to ca04959 Compare May 13, 2026 12:41
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