thanos-io/thanos · error

failed to validate hashring configuration content

Error message

failed to validate hashring configuration content

What it means

Wraps a receive.ParseConfig failure on the inline hashring configuration passed via --receive.hashrings-file-content (the single-node / no-watcher path). The supplied JSON content is syntactically invalid or semantically invalid as a hashring config, so no initial hashring can be established.

Solutions

  1. Validate the inline hashring content JSON/YAML
  2. Compare against the documented hashring config format
  3. Test with a minimal single-endpoint config
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at cmd/thanos/receive.go:630 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/570b18f57dcc8cc9. Report an issue: GitHub.

Appendix: source

Thrown at cmd/thanos/receive.go:630

		}

		ctx, cancel := context.WithCancel(context.Background())
		g.Add(func() error {
			return receive.ConfigFromWatcher(ctx, updates, cw)
		}, func(error) {
			cancel()
		})
	} else {
		var (
			cf  []receive.HashringConfig
			err error
		)
		// The Hashrings config file content given initialize configuration from content.
		if len(conf.hashringsFileContent) > 0 {
			cf, err = receive.ParseConfig([]byte(conf.hashringsFileContent))
			if err != nil {
				close(updates)
				return errors.Wrap(err, "failed to validate hashring configuration content")
			}
		}

		cancel := make(chan struct{})
		g.Add(func() error {
			defer close(updates)
			updates <- cf
			<-cancel
			return nil
		}, func(error) {
			close(cancel)
		})
	}

	cancel := make(chan struct{})
	g.Add(func() error {

		if enableIngestion {

View on GitHub (pinned to 35b8b99117)