thanos-io/thanos · error
lookup label value
Error message
lookup label value
What it means
Raised in bucketIndexReader.LookupLabelsSymbols when the block's symbol table cannot resolve a series label's value string for the given reference. It indicates index corruption or a symbol table that does not cover the referenced offset, so the label set cannot be materialized and series construction for that block fails.
Solutions
- Verify block index integrity (promtool tsx / block verification) for the affected block
- Re-download or re-fetch the block's index file from object storage
- Exclude or repair the corrupted block; check for truncated uploads
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at pkg/store/bucket.go:3535 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/8ee3c1cc9de8e958.
Report an issue: GitHub.
Appendix: source
Thrown at pkg/store/bucket.go:3535
}
return nil
}
func (b *blockSeriesClient) CloseSend() error {
return nil
}
// LookupLabelsSymbols allows populates label set strings from symbolized label set.
func (r *bucketIndexReader) LookupLabelsSymbols(ctx context.Context, symbolized []symbolizedLabel, b *labels.Builder) error {
b.Reset(labels.EmptyLabels())
for _, s := range symbolized {
ln, err := r.dec.LookupSymbol(ctx, s.name)
if err != nil {
return errors.Wrap(err, "lookup label name")
}
lv, err := r.dec.LookupSymbol(ctx, s.value)
if err != nil {
return errors.Wrap(err, "lookup label value")
}
b.Set(ln, lv)
}
return nil
}
// decodeSeriesForTime decodes a series entry from the given byte slice decoding only chunk metas that are within given min and max time.
// If skipChunks is specified decodeSeriesForTime does not return any chunks, but only labels and only if at least single chunk is within time range.
// decodeSeriesForTime returns false, when there are no series data for given time range.
func decodeSeriesForTime(b []byte, lset *[]symbolizedLabel, chks *[]chunks.Meta, skipChunks bool, selectMint, selectMaxt int64) (ok bool, err error) {
*lset = (*lset)[:0]
*chks = (*chks)[:0]
d := encoding.Decbuf{B: b}
// Read labels without looking up symbols.
k := d.Uvarint()
for i := 0; i < k; i++ {View on GitHub (pinned to 35b8b99117)