thanos-io/thanos · error
fetch label names from store
Error message
fetch label names from store %s
What it means
A fan-out LabelNames RPC to one store in the StoreAPI fan-out failed (connection error, store error, or cancelled errgroup context). The error names the failing store so the query can be attributed; whether it aborts the query or becomes a warning depends on the request's partial-response strategy.
Solutions
- Check the failing store's address, health and logs (sidecar/store-gateway/rule)
- Verify network reachability and gRPC TLS config between query and store
- Retry the query; transient store restarts are a common cause
- With partial-response enabled, rerun for the missing data once the store is healthy
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at pkg/store/proxy.go:473 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of thanos-io/thanos@35b8b99117 (2026-09-07).
Data as JSON: /api/errors/5d840bf009cf33dd.
Report an issue: GitHub.
Appendix: source
Thrown at pkg/store/proxy.go:473
PartialResponseStrategy: originalRequest.PartialResponseStrategy,
Start: originalRequest.Start,
End: originalRequest.End,
Matchers: append(storeMatchers, MatchersForLabelSets(storeLabelSets)...),
WithoutReplicaLabels: originalRequest.WithoutReplicaLabels,
Hints: originalRequest.Hints,
}
var (
warnings []string
names [][]string
mtx sync.Mutex
g, gctx = errgroup.WithContext(ctx)
)
for _, st := range stores {
g.Go(func() error {
resp, err := st.LabelNames(gctx, r)
if err != nil {
err = errors.Wrapf(err, "fetch label names from store %s", st)
if r.PartialResponseDisabled || r.PartialResponseStrategy == storepb.PartialResponseStrategy_ABORT {
return err
}
mtx.Lock()
warnings = append(warnings, err.Error())
mtx.Unlock()
return nil
}
mtx.Lock()
warnings = append(warnings, resp.Warnings...)
names = append(names, resp.Names)
mtx.Unlock()
return nil
})
}View on GitHub (pinned to 35b8b99117)