{"record":{"id":"f898dd9e3d3339a0","repo":"jaegertracing/jaeger","slug":"cannot-create-dependencies-reader-w","errorCode":null,"errorMessage":"cannot create dependencies reader: %w","messagePattern":"cannot create dependencies reader: %w","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/jaeger/internal/extension/jaegerquery/server.go","lineNumber":92,"sourceCode":"\t\treturn fmt.Errorf(\"cannot find factory for trace storage %s: %w\", s.config.Storage.TracesPrimary, err)\n\t}\n\ttraceReader, err := tf.CreateTraceReader()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"cannot create trace reader: %w\", err)\n\t}\n\n\tinterceptors, err := queryinterceptor.Resolve(host, s.config.QueryInterceptors)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"cannot resolve query interceptors: %w\", err)\n\t}\n\n\tdf, ok := tf.(depstore.Factory)\n\tif !ok {\n\t\treturn fmt.Errorf(\"cannot find factory for dependency storage %s: %w\", s.config.Storage.TracesPrimary, err)\n\t}\n\tdepReader, err := df.CreateDependencyReader()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"cannot create dependencies reader: %w\", err)\n\t}\n\n\topts := querysvc.QueryServiceOptions{\n\t\tMaxClockSkewAdjust: s.config.MaxClockSkewAdjust,\n\t\tMaxTraceSize:       s.config.MaxTraceSize,\n\t\tInterceptors:       interceptors,\n\t}\n\tif err := s.addArchiveStorage(&opts, host); err != nil {\n\t\treturn err\n\t}\n\tqs := querysvc.NewQueryService(traceReader, depReader, opts)\n\ts.qs = qs\n\n\tmqs, err := s.createMetricReader(host)\n\tif err != nil {\n\t\treturn err\n\t}\n","sourceCodeStart":74,"sourceCodeEnd":110,"githubUrl":"https://github.com/jaegertracing/jaeger/blob/806f4447841ecdb60519f408b004a599d515f437/cmd/jaeger/internal/extension/jaegerquery/server.go#L74-L110","documentation":"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'.","triggerScenarios":"df.CreateDependencyReader() returns an error — backend-specific initialization failure such as failed session/keyspace setup in Cassandra or index/client creation failure in Elasticsearch.","commonSituations":"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.","solutions":["Read the wrapped cause for the backend-specific failure and fix it (connectivity, schema, permissions)","Run/verify the backend schema initialization covering dependency storage (e.g. Cassandra dependencies table)","Check storage config section for dependency-related settings (keyspace, index prefix)","Test the same backend with the jaeger-all-in-one binary to isolate config vs backend issues"],"exampleFix":"// before\n# cassandra keyspace jaeger_v1_test missing dependencies table\n// after\n# run: cassandra-schema.sh (creates dependencies table in the keyspace)","handlingStrategy":"try-catch","validationCode":"// Verify schema/permissions for dependency storage before start\ncqlSession.Query(\"SELECT count(*) FROM jaeger_v1_test.dependencies\").Exec() // must succeed","typeGuard":null,"tryCatchPattern":"if err := ext.Start(ctx, host); err != nil {\n\tif strings.Contains(err.Error(), \"cannot create dependencies reader\") {\n\t\tlog.Fatalf(\"dependency reader init failed: %v — check schema/permissions\", err)\n\t}\n\treturn err\n}","preventionTips":["Run schema initialization covering the dependencies table/index on every backend upgrade","Grant the jaeger user read access to dependency storage objects","Smoke-test dependency reads with all-in-one against the same backend","Keep keyspace/index-prefix config consistent across components"],"tags":["go","storage","dependencies","startup"],"backgroundTag":"storage-backend-unavailable","analyzedSha":"806f4447841ecdb60519f408b004a599d515f437","analyzedAt":"2026-09-01T02:39:22.140Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T05:18:18.240Z"}