thanos-io/thanos · error

create default tenant tsdb in

Error message

create default tenant tsdb in %v

What it means

Wraps a failure of createDefautTenantTSDB, which bootstraps the TSDB instance for the default tenant inside the freshly opened data directory. Any error from opening or initializing that per-tenant TSDB lands here; ingestion cannot start without the default tenant's storage.

Solutions

  1. Check disk space and inode availability
  2. Inspect permissions on the data dir
  3. Look for a corrupt pre-existing tenant directory and check earlier logs
Defensive patterns

Strategy: try-catch

When it happens

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

Appendix: source

Thrown at cmd/thanos/receive.go:222

		} else {
			level.Info(logger).Log("msg", "no supported bucket was configured, uploads will be disabled")
		}
	}

	var dataDir *os.Root
	if enableIngestion {
		if err := os.MkdirAll(conf.dataDir, 0o755); err != nil {
			return errors.Wrapf(err, "create data dir in %v", conf.dataDir)
		}

		dataDir, err = os.OpenRoot(conf.dataDir)
		if err != nil {
			return errors.Wrap(err, "open storage dir")
		}

		// Create TSDB for the default tenant.
		if err := createDefautTenantTSDB(logger, conf.defaultTenantID, dataDir); err != nil {
			return errors.Wrapf(err, "create default tenant tsdb in %v", conf.dataDir)
		}
	}

	relabelConfig, err := conf.relabelCfg.RelabelConfig(nil)
	if err != nil {
		return errors.Wrap(err, "get relabel configuration")
	}

	var cache = storecache.NoopMatchersCache
	if conf.matcherCacheSize > 0 {
		cache, err = storecache.NewMatchersCache(storecache.WithSize(conf.matcherCacheSize), storecache.WithPromRegistry(reg))
		if err != nil {
			return errors.Wrap(err, "failed to create matchers cache")
		}
		multiTSDBOptions = append(multiTSDBOptions, receive.WithMatchersCache(cache))
	}

	multiTSDBOptions = append(multiTSDBOptions, receive.WithUploadConcurrency(conf.uploadConcurrency))

View on GitHub (pinned to 35b8b99117)