thanos-io/thanos · error

no such issue ID

Error message

no such issue ID %s

What it means

SubstractByIDs filters the manager's verifier/verifierRepairer set down to those whose IssueID matches the provided --id values. If any requested ID does not match a registered issue, it returns this error, preventing a silent no-op run.

Solutions

  1. List registered issue IDs (run verify without --id, check VerifiersIDs/VerifierRepairersIDs output) and use an exact match
  2. Correct typos in --id values
  3. Confirm the issue ID is supported by your Thanos version

Example fix

// before
thanos verify --id=01ARZ3NDEKTSV4RRFFQ69G5FAV
// after
thanos verify --id=index-
// or verify the ID exists in m.vs before subtracting
Defensive patterns

Strategy: validation

Validate before calling

ids := registry.VerifiersIDs()
ids = append(ids, registry.VerifierRepairersIDs()...)
for _, want := range requestedIDs {
	if !slices.Contains(ids, want) { return fmt.Errorf("unknown issue id %q; valid: %v", want, ids) }
}

Try / catch

if err := manager.SubstractByIDs(requested); err != nil {
	// fall back to all registered issues or print valid IDs
}

Prevention

When it happens

Trigger: Running thanos verify --id=<ULID-or-name> where the given ID is not among the registered Verifiers/VerifierRepairers' IssueIDs (typo, wrong ULID, verifier not compiled/registered).

Common situations: Typo or stale block ID from an old run; using a block ULID instead of an issue ID (e.g. "duplicated-block" or "index-"); running a build that lacks certain verifiers.

Understand the failure class

Background: "Must be a positive integer", "Invalid value", "Unsupported": the invalid-argument-value error family, when a library rejects the value you pass — this error's family across 35 libraries.

Related errors


AI-assisted analysis of thanos-io/thanos@35b8b99117 (2026-09-07). Data as JSON: /api/errors/a0562e263bac8bef. Report an issue: GitHub.

Appendix: source

Thrown at pkg/verifier/verify.go:110

		if !repair {
			for _, v := range r.Verifiers {
				if v.IssueID() != id {
					continue
				}
				n.Verifiers = append(n.Verifiers, v)
				continue idLoop

			}
		}

		for _, vr := range r.VerifierRepairers {
			if vr.IssueID() != id {
				continue
			}
			n.VerifierRepairers = append(n.VerifierRepairers, vr)
			continue idLoop
		}
		return n, errors.Errorf("no such issue ID %s", id)
	}
	return n, nil
}

// New returns verifier's manager.
func NewManager(reg prometheus.Registerer, logger log.Logger, bkt, backupBkt objstore.Bucket, fetcher block.MetadataFetcher, deleteDelay time.Duration, vs Registry) *Manager {
	return &Manager{
		Context: Context{
			Logger:      logger,
			Bkt:         bkt,
			BackupBkt:   backupBkt,
			Fetcher:     fetcher,
			DeleteDelay: deleteDelay,

			metrics: newVerifierMetrics(reg),
		},
		vs: vs,
	}

View on GitHub (pinned to 35b8b99117)