diff --git a/selector/cache/cache.go b/selector/cache/cache.go index f90a62b4..5e61dce7 100644 --- a/selector/cache/cache.go +++ b/selector/cache/cache.go @@ -119,10 +119,20 @@ func (c *cacheSelector) get(service string) ([]*registry.Service, error) { } // expired entry so get service - if services, err := get(service); err == nil { + services, err := get(service) + + // no error then return error + if err == nil { return services, nil } + // not found error then return + if err == registry.ErrNotFound { + return nil, selector.ErrNotFound + } + + // other error + // return expired cache as last resort return c.cp(services), nil }