thanos-io/thanos · error
failed to set hashring config in MultiTSDB
Error message
failed to set hashring config in MultiTSDB
What it means
dbs.SetHashringConfig failed to propagate a validated hashring update into the MultiTSDB, meaning tenants mapped to this node cannot be opened/resized. Typically an internal error opening per-tenant DBs.
Solutions
- Check MultiTSDB logs for the underlying tenant DB error
- Verify disk and permissions on tsdb path
- Confirm the new hashring endpoints are consistent
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at cmd/thanos/receive.go:672 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/6123c9db579b9cc7.
Report an issue: GitHub.
Appendix: source
Thrown at cmd/thanos/receive.go:672
case c, ok := <-updates:
if !ok {
return nil
}
if c == nil {
webHandler.Hashring(receive.SingleNodeHashring(conf.endpoint))
level.Info(logger).Log("msg", "Empty hashring config. Set up single node hashring.")
} else {
h, err := receive.NewMultiHashring(algorithm, conf.replicationFactor, c, reg)
if err != nil {
return errors.Wrap(err, "unable to create new hashring from config")
}
webHandler.Hashring(h)
level.Info(logger).Log("msg", "Set up hashring for the given hashring config.")
}
if err := dbs.SetHashringConfig(c); err != nil {
return errors.Wrap(err, "failed to set hashring config in MultiTSDB")
}
// If ingestion is enabled, send a signal to TSDB to flush.
if enableIngestion {
hashringChangedChan <- struct{}{}
} else {
// If not, just signal we are ready (this is important during first hashring load)
statusProber.Ready()
}
case <-cancel:
return nil
}
}
}, func(err error) {
close(cancel)
},
)
return nilView on GitHub (pinned to 35b8b99117)