From 0d73e3ebe23d45e7dabadfa5496d827f0ea3096b Mon Sep 17 00:00:00 2001 From: Ben McClelland Date: Thu, 3 Jul 2025 09:38:13 -0700 Subject: [PATCH] fix: prevent internal request retry to s3proxy backend The http body stream is not a seekable stream, so most operation retry attempts will fail with an internal server error. This change tells the s3 client within the gateway to not retry any requests, and instead let the client of the gateway handle the error retry. Fixes #1353 --- backend/s3proxy/client.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/s3proxy/client.go b/backend/s3proxy/client.go index b142559..06d4544 100644 --- a/backend/s3proxy/client.go +++ b/backend/s3proxy/client.go @@ -37,6 +37,10 @@ func (s *S3Proxy) getClientWithCtx(ctx context.Context) (*s3.Client, error) { return s3.NewFromConfig(cfg, func(o *s3.Options) { o.BaseEndpoint = &s.endpoint o.UsePathStyle = s.usePathStyle + // The http body stream is not seekable, so most operations cannot + // be retried. The error returned to the original client may be + // retried by the client. + o.Retryer = aws.NopRetryer{} }), nil }