thanos-io/thanos · error

invalid ULID found in --id flag

Error message

invalid ULID found in --id flag

What it means

A ulid.Parse failure on one of the block IDs passed via --id to a bucket inspect/verify command: the string is not a valid 26-character ULID (wrong length, non-canonical Crockford base32 characters). The offending value from the flag is echoed in the message.

Solutions

  1. Copy the full 26-character ULID from block listings
  2. Check for truncation or extra whitespace in the flag
  3. Use `thanos tools bucket ls` to get valid IDs
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at cmd/thanos/tools_bucket.go:398 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/00fc742ada9502ed. Report an issue: GitHub.

Appendix: source

Thrown at cmd/thanos/tools_bucket.go:398

		if err != nil {
			return err
		}

		// We ignore any block that has the deletion marker file.
		filters := []block.MetadataFilter{block.NewIgnoreDeletionMarkFilter(logger, insBkt, 0, block.FetcherConcurrency)}
		baseBlockIDsFetcher := block.NewConcurrentLister(logger, insBkt)
		fetcher, err := block.NewMetaFetcher(logger, block.FetcherConcurrency, insBkt, baseBlockIDsFetcher, "", extprom.WrapRegistererWithPrefix(extpromPrefix, reg), filters)
		if err != nil {
			return err
		}

		var idMatcher func(ulid.ULID) bool = nil
		if len(tbc.ids) > 0 {
			idsMap := map[string]struct{}{}
			for _, bid := range tbc.ids {
				id, err := ulid.Parse(bid)
				if err != nil {
					return errors.Wrap(err, "invalid ULID found in --id flag")
				}
				idsMap[id.String()] = struct{}{}
			}

			idMatcher = func(id ulid.ULID) bool {
				if _, ok := idsMap[id.String()]; !ok {
					return false
				}
				return true
			}
		}

		v := verifier.NewManager(reg, logger, insBkt, backupBkt, fetcher, time.Duration(*deleteDelay), r)
		if tbc.repair {
			return v.VerifyAndRepair(context.Background(), idMatcher)
		}

		return v.Verify(context.Background(), idMatcher)

View on GitHub (pinned to 35b8b99117)