{"record":{"id":"85f3a2a10fc2e86e","repo":"thanos-io/thanos","slug":"nothing-to-verify-no-verifierrepairers-registered","errorCode":null,"errorMessage":"nothing to verify. No verifierRepairers registered","messagePattern":"nothing to verify\\. No verifierRepairers registered","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/verifier/verify.go","lineNumber":166,"sourceCode":"\t}\n\tfor _, vr := range m.vs.VerifierRepairers {\n\t\tvCtx := m.Context\n\t\tvCtx.Context = ctx\n\t\tvCtx.Logger = log.With(logger, \"verifier\", vr.IssueID())\n\t\tif err := vr.VerifyRepair(vCtx, idMatcher, false); err != nil {\n\t\t\treturn errors.Wrapf(err, \"verify %s\", vr.IssueID())\n\t\t}\n\t}\n\n\tlevel.Info(logger).Log(\"msg\", \"verify task completed\")\n\treturn nil\n}\n\n// VerifyAndRepair verifies and repairs matching blocks using registered list of VerifierRepairer.\n// TODO(blotka): Wrap bucket with WrapWithMetrics and print metrics after each issue (e.g how many blocks where touched).\nfunc (m *Manager) VerifyAndRepair(ctx context.Context, idMatcher func(ulid.ULID) bool) error {\n\tif len(m.vs.Verifiers)+len(m.vs.VerifierRepairers) == 0 {\n\t\treturn errors.New(\"nothing to verify. No verifierRepairers registered\")\n\t}\n\n\tlogger := log.With(m.Logger, \"verifiers\", strings.Join(m.vs.VerifierRepairersIDs(), \",\"))\n\tlevel.Warn(logger).Log(\"msg\", \"GLOBAL COMPACTOR SHOULD __NOT__ BE RUNNING ON THE SAME BUCKET\")\n\tlevel.Info(logger).Log(\"msg\", \"Starting verify and repair task\")\n\n\tfor _, vr := range m.vs.VerifierRepairers {\n\t\tvCtx := m.Context\n\t\tvCtx.Logger = log.With(logger, \"verifier\", vr.IssueID())\n\t\tvCtx.Context = ctx\n\t\tif err := vr.VerifyRepair(vCtx, idMatcher, true); err != nil {\n\t\t\treturn errors.Wrapf(err, \"verify and repair %s\", vr.IssueID())\n\t\t}\n\t}\n\n\tlevel.Info(logger).Log(\"msg\", \"verify and repair task completed\")\n\treturn nil\n}","sourceCodeStart":148,"sourceCodeEnd":184,"githubUrl":"https://github.com/thanos-io/thanos/blob/35b8b991177def87ed52dcf10f9b6d87f07282c8/pkg/verifier/verify.go#L148-L184","documentation":"VerifyAndRepair refused to run because no VerifierRepairers are registered in the verifier set — an empty tool configuration, not a bucket problem. The guard fires before any bucket access, telling the operator to pass the --repair or verifier flags that register repairable issues.","triggerScenarios":"Thrown at pkg/verifier/verify.go:166 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Register at least one verifier-repairer via the verify/repair CLI flags","Check the verifier manager construction to ensure the desired repairers are enabled"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"35b8b991177def87ed52dcf10f9b6d87f07282c8","analyzedAt":"2026-09-07T01:49:59.689Z","contentChangedAt":"2026-09-07T01:49:59.689Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}