diff --git a/api.go b/api.go index 484960b92..95ae40f16 100644 --- a/api.go +++ b/api.go @@ -2343,7 +2343,10 @@ func (api *API) GetTranslateEntryReader(ctx context.Context, offsets TranslateOf if field == nil { return nil, newNotFoundError(ErrFieldNotFound, fieldName) } - + store := field.TranslateStore() + if store == nil { + return nil, ErrTranslateStoreNotFound + } r, err := field.TranslateStore().EntryReader(ctx, uint64(offset)) if err != nil { return nil, errors.Wrap(err, "field translate reader") diff --git a/cluster.go b/cluster.go index 9b161ea41..76910a4bb 100644 --- a/cluster.go +++ b/cluster.go @@ -1480,6 +1480,10 @@ func (c *cluster) matchField(ctx context.Context, field *Field, like string) ([] if c.Node.ID == primary.ID { // The local copy is the authoritative copy. plan := planLike(like) + store := field.TranslateStore() + if store == nil { + return nil, ErrTranslateStoreNotFound + } return field.TranslateStore().Match(func(key []byte) bool { return matchLike(key, plan...) }) @@ -1521,6 +1525,10 @@ func (c *cluster) translateFieldListIDs(field *Field, ids []uint64) (keys []stri } if c.Node.ID == primary.ID { + store := field.TranslateStore() + if store == nil { + return nil, ErrTranslateStoreNotFound + } keys, err = field.TranslateStore().TranslateIDs(ids) } else { keys, err = c.InternalClient.TranslateIDsNode(context.Background(), &primary.URI, field.Index(), field.Name(), ids)