jaegertracing/jaeger · error

cannot create dependencies reader: %w

Error message

cannot create dependencies reader: %w

What it means

Once the primary factory is confirmed as a depstore.Factory, Start calls CreateDependencyReader(). Failure means the backend recognized dependency support but could not instantiate its dependency reader (typically an internal initialization error), wrapped as 'cannot create dependencies reader'.

Source

Thrown at cmd/jaeger/internal/extension/jaegerquery/server.go:92

		return fmt.Errorf("cannot find factory for trace storage %s: %w", s.config.Storage.TracesPrimary, err)
	}
	traceReader, err := tf.CreateTraceReader()
	if err != nil {
		return fmt.Errorf("cannot create trace reader: %w", err)
	}

	interceptors, err := queryinterceptor.Resolve(host, s.config.QueryInterceptors)
	if err != nil {
		return fmt.Errorf("cannot resolve query interceptors: %w", err)
	}

	df, ok := tf.(depstore.Factory)
	if !ok {
		return fmt.Errorf("cannot find factory for dependency storage %s: %w", s.config.Storage.TracesPrimary, err)
	}
	depReader, err := df.CreateDependencyReader()
	if err != nil {
		return fmt.Errorf("cannot create dependencies reader: %w", err)
	}

	opts := querysvc.QueryServiceOptions{
		MaxClockSkewAdjust: s.config.MaxClockSkewAdjust,
		MaxTraceSize:       s.config.MaxTraceSize,
		Interceptors:       interceptors,
	}
	if err := s.addArchiveStorage(&opts, host); err != nil {
		return err
	}
	qs := querysvc.NewQueryService(traceReader, depReader, opts)
	s.qs = qs

	mqs, err := s.createMetricReader(host)
	if err != nil {
		return err
	}

View on GitHub (pinned to 806f444784)

Solutions

  1. Read the wrapped cause for the backend-specific failure and fix it (connectivity, schema, permissions)
  2. Run/verify the backend schema initialization covering dependency storage (e.g. Cassandra dependencies table)
  3. Check storage config section for dependency-related settings (keyspace, index prefix)
  4. Test the same backend with the jaeger-all-in-one binary to isolate config vs backend issues

Example fix

// before
# cassandra keyspace jaeger_v1_test missing dependencies table
// after
# run: cassandra-schema.sh (creates dependencies table in the keyspace)
Defensive patterns

Strategy: try-catch

Validate before calling

// Verify schema/permissions for dependency storage before start
cqlSession.Query("SELECT count(*) FROM jaeger_v1_test.dependencies").Exec() // must succeed

Try / catch

if err := ext.Start(ctx, host); err != nil {
	if strings.Contains(err.Error(), "cannot create dependencies reader") {
		log.Fatalf("dependency reader init failed: %v — check schema/permissions", err)
	}
	return err
}

Prevention

When it happens

Trigger: df.CreateDependencyReader() returns an error — backend-specific initialization failure such as failed session/keyspace setup in Cassandra or index/client creation failure in Elasticsearch.

Common situations: Cassandra keyspace for dependencies not created; Elasticsearch dependency index misconfigured; storage client partially initialized due to earlier connection errors; permission denied on the dependencies table/index.

Related errors


AI-assisted analysis of jaegertracing/jaeger@806f444784 (2026-09-01). Data as JSON: /api/errors/f898dd9e3d3339a0. Report an issue: GitHub.