thanos-io/thanos · error
repair is specified, so backup client is required
Error message
repair is specified, so backup client is required
What it means
`thanos tools bucket repair` was requested but no backup object store was configured (--objstore-backup). Repair mutates blocks destructively, so without a backup bucket the tool refuses to run. Input at fault: missing backup config.
Solutions
- Configure --objstore-backup.config-file with a valid backup bucket
- Or drop the --repair flag if repair is not intended
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at cmd/thanos/tools_bucket.go:363 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/129f8085eca91906.
Report an issue: GitHub.
Appendix: source
Thrown at cmd/thanos/tools_bucket.go:363
return err
}
bkt, err := client.NewBucket(logger, confContentYaml, component.Bucket.String(), nil)
if err != nil {
return err
}
insBkt := objstoretracing.WrapWithTraces(objstore.WrapWithMetrics(bkt, extprom.WrapRegistererWithPrefix("thanos_", reg), bkt.Name()))
defer runutil.CloseWithLogOnErr(logger, insBkt, "bucket client")
backupconfContentYaml, err := objStoreBackupConfig.Content()
if err != nil {
return err
}
var backupBkt objstore.Bucket
if len(backupconfContentYaml) == 0 {
if tbc.repair {
return errors.New("repair is specified, so backup client is required")
}
} else {
// nil Prometheus registerer: don't create conflicting metrics.
backupBkt, err = client.NewBucket(logger, backupconfContentYaml, component.Bucket.String(), nil)
if err != nil {
return err
}
insBkt = objstoretracing.WrapWithTraces(objstore.WrapWithMetrics(bkt, nil, bkt.Name()))
defer runutil.CloseWithLogOnErr(logger, backupBkt, "backup bucket client")
}
// Dummy actor to immediately kill the group after the run function returns.
g.Add(func() error { return nil }, func(error) {})
r, err := issuesVerifiersRegistry.SubstractByIDs(tbc.issuesToVerify, tbc.repair)
if err != nil {
return errView on GitHub (pinned to 35b8b99117)