From 015e0366ada4fe868531af396bab5d1b33c48d87 Mon Sep 17 00:00:00 2001 From: Rex P Date: Tue, 16 Jun 2026 13:26:36 +1000 Subject: [PATCH] refactor: improve datastore repo index batch get error handling --- go/internal/database/datastore/repo_index.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/go/internal/database/datastore/repo_index.go b/go/internal/database/datastore/repo_index.go index 3c153b6b918..ee06420341b 100644 --- a/go/internal/database/datastore/repo_index.go +++ b/go/internal/database/datastore/repo_index.go @@ -116,10 +116,17 @@ func (s *RepoIndexStore) GetRepoIndexes(ctx context.Context, ids []string) ([]*m dbIndexes := make([]*RepoIndex, len(ids)) err := s.client.GetMulti(ctx, keys, dbIndexes) if err != nil { - // If some entities are not found, GetMulti returns datastore.ErrMultiErr var multiErr datastore.MultiError - if !errors.As(err, &multiErr) { - return nil, fmt.Errorf("failed to batch get RepoIndexes: %w", err) + if errors.As(err, &multiErr) { + for i, e := range multiErr { + if errors.Is(e, datastore.ErrNoSuchEntity) { + dbIndexes[i] = nil + } else if e != nil { + return nil, fmt.Errorf("failed to get multi: %w", err) + } + } + } else { + return nil, fmt.Errorf("failed to get multi: %w", err) } }