From bce3f40a16ada9eaa05fe58ff6a72920007ed195 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Tue, 14 May 2024 11:44:41 +0530 Subject: [PATCH] Avoid retry for 404 error --- server/pkg/controller/embedding/controller.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/pkg/controller/embedding/controller.go b/server/pkg/controller/embedding/controller.go index 134014d138..e8d6c347a7 100644 --- a/server/pkg/controller/embedding/controller.go +++ b/server/pkg/controller/embedding/controller.go @@ -6,6 +6,7 @@ import ( "encoding/json" "errors" "fmt" + "github.com/aws/aws-sdk-go/aws/awserr" "github.com/ente-io/museum/pkg/utils/array" "strconv" "sync" @@ -397,6 +398,13 @@ func (c *Controller) getEmbeddingObject(ctx context.Context, objectKey string, d if fetchCtx.Err() != nil { ctxLogger.Error("Fetch timed out or cancelled: ", fetchCtx.Err()) } else { + // check if the error is due to object not found + if s3Err, ok := err.(awserr.Error); ok { + if s3Err.Code() == s3.ErrCodeNoSuchKey { + ctxLogger.Warn("Object not found: ", s3Err) + return ente.EmbeddingObject{}, stacktrace.Propagate(errors.New("object not found"), "") + } + } ctxLogger.Error("Failed to fetch object: ", err) } }