{"record":{"id":"ffc98ea1dbcfa13b","repo":"thanos-io/thanos","slug":"new-tracer-provider-err","errorCode":null,"errorMessage":"new tracer provider err","messagePattern":"new tracer provider err","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/tracing/client/factory.go","lineNumber":70,"sourceCode":"\tif tracingConf.Config != nil {\n\t\tconfig, err = yaml.Marshal(tracingConf.Config)\n\t\tif err != nil {\n\t\t\treturn nil, nil, errors.Wrap(err, \"marshal content of tracing configuration\")\n\t\t}\n\t}\n\n\tswitch strings.ToUpper(string(tracingConf.Type)) {\n\tcase string(Stackdriver), string(GoogleCloud):\n\t\ttracerProvider, err := google_cloud.NewTracerProvider(ctx, logger, config)\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\ttracer, closerFunc := migration.Bridge(tracerProvider, logger)\n\t\treturn tracer, closerFunc, nil\n\tcase string(Jaeger):\n\t\ttracerProvider, err := jaeger.NewTracerProvider(ctx, logger, config)\n\t\tif err != nil {\n\t\t\treturn nil, nil, errors.Wrap(err, \"new tracer provider err\")\n\t\t}\n\t\ttracer, closerFunc := migration.Bridge(tracerProvider, logger)\n\t\treturn tracer, closerFunc, nil\n\tcase string(ElasticAPM):\n\t\treturn elasticapm.NewTracer(config)\n\tcase string(Lightstep):\n\t\treturn lightstep.NewTracer(ctx, config)\n\tcase string(OpenTelemetryProtocol):\n\t\ttracerProvider, err := otlp.NewTracerProvider(ctx, logger, config)\n\t\tif err != nil {\n\t\t\treturn nil, nil, errors.Wrap(err, \"new tracer provider err\")\n\t\t}\n\t\ttracer, closerFunc := migration.Bridge(tracerProvider, logger)\n\t\treturn tracer, closerFunc, nil\n\tdefault:\n\t\treturn nil, nil, errors.Errorf(\"tracing with type %s is not supported\", tracingConf.Type)\n\t}\n}","sourceCodeStart":52,"sourceCodeEnd":88,"githubUrl":"https://github.com/thanos-io/thanos/blob/35b8b991177def87ed52dcf10f9b6d87f07282c8/pkg/tracing/client/factory.go#L52-L88","documentation":"When tracingConf.Type is 'JAEGER', NewTracer calls jaeger.NewTracerProvider with the backend config and wraps any returned error with 'new tracer provider err'. The underlying error comes from Jaeger client construction (invalid endpoint, bad sampler config, unsupported transport, TLS settings, etc.).","triggerScenarios":"Type: JAEGER in tracing config with an invalid nested config, e.g. wrong 'endpoint' URL, invalid sampler_type/sampler_param, or misconfigured agent/collector flags passed to jaeger.NewTracerProvider.","commonSituations":"Pointing at a collector with a typo'd or unreachable endpoint URL, passing sampler_param of wrong type, or using config keys not recognized by the Jaeger client library version in use.","solutions":["Inspect the wrapped inner error for the exact Jaeger client failure","Verify endpoint/collector URL format and reachability","Check sampler type and param values against jaeger-client-go docs","Confirm config keys are supported by the vendored Jaeger client version"],"exampleFix":"// before\ntracing:\n  type: JAEGER\n  config:\n    endpoint: collector:14268\n// after\ntracing:\n  type: JAEGER\n  config:\n    endpoint: http://collector:14268/api/traces","handlingStrategy":"try-catch","validationCode":"// Validate Jaeger endpoint before construction\nendpoint, _ := jaegerCfg[\"endpoint\"].(string)\nif endpoint != \"\" {\n    if u, err := url.Parse(endpoint); err != nil || u.Scheme == \"\" || u.Host == \"\" {\n        return fmt.Errorf(\"invalid jaeger endpoint %q\", endpoint)\n    }\n}","typeGuard":null,"tryCatchPattern":"tracer, closer, err := tracing.NewTracer(ctx, logger, reg, cfgYaml)\nif err != nil && strings.Contains(err.Error(), \"new tracer provider err\") {\n    logger.Error(err, \"jaeger tracer construction failed; check wrapped cause\")\n    return err\n}","preventionTips":["Use fully-qualified Jaeger endpoint URLs including scheme and path","Match sampler_type/sampler_param values to jaeger-client-go docs","Verify collector reachability with a curl before starting","Keep Jaeger config keys aligned with the vendored client version"],"tags":["tracing","jaeger","configuration","thanos"],"backgroundTag":"invalid-config-value","analyzedSha":"35b8b991177def87ed52dcf10f9b6d87f07282c8","analyzedAt":"2026-09-07T01:49:59.689Z","contentChangedAt":"2026-09-07T01:49:59.689Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}