diff --git a/pkg/stores/proxy/proxy_store.go b/pkg/stores/proxy/proxy_store.go index 31a2888a..92c4c406 100644 --- a/pkg/stores/proxy/proxy_store.go +++ b/pkg/stores/proxy/proxy_store.go @@ -275,17 +275,21 @@ func returnErr(err error, c chan types.APIEvent) { func (s *Store) listAndWatch(apiOp *types.APIRequest, k8sClient dynamic.ResourceInterface, schema *types.APISchema, w types.WatchRequest, result chan types.APIEvent) { rev := w.Revision - if rev == "" { + if rev == "-1" { + rev = "" + } else { + // ensure the revision is valid or get the latest one list, err := k8sClient.List(apiOp.Context(), metav1.ListOptions{ - Limit: 1, + Limit: 1, + ResourceVersion: rev, }) if err != nil { returnErr(errors.Wrapf(err, "failed to list %s", schema.ID), result) return } - rev = list.GetResourceVersion() - } else if rev == "-1" { - rev = "" + if rev == "" { + rev = list.GetResourceVersion() + } } timeout := int64(60 * 30)