{"id":"a6159b700849e1b8","repo":"go-redis/redis","slug":"failed-to-create-pub-sub-messages-metric-w","errorCode":null,"errorMessage":"failed to create Pub/Sub messages metric: %w","messagePattern":"failed to create Pub/Sub messages metric: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"extra/redisotel-native/redisotel.go","lineNumber":314,"sourceCode":"\t\t\tdbconv.ClientConnectionPendingRequests{}.Name(),\n\t\t\tmetric.WithDescription(dbconv.ClientConnectionPendingRequests{}.Description()),\n\t\t\tmetric.WithUnit(dbconv.ClientConnectionPendingRequests{}.Unit()),\n\t\t)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to create connection pending requests metric: %w\", err)\n\t\t}\n\t}\n\n\tvar pubsubMessages metric.Int64Counter\n\n\tif cfg.isMetricGroupEnabled(MetricGroupPubSub) {\n\t\tpubsubMessages, err = meter.Int64Counter(\n\t\t\tMetricPubSubMessages,\n\t\t\tmetric.WithDescription(\"The number of Pub/Sub messages sent or received\"),\n\t\t\tmetric.WithUnit(\"{message}\"),\n\t\t)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to create Pub/Sub messages metric: %w\", err)\n\t\t}\n\t}\n\n\tvar streamLag metric.Float64Histogram\n\n\tif cfg.isMetricGroupEnabled(MetricGroupStream) {\n\t\tvar streamLagOpts []metric.Float64HistogramOption\n\t\tstreamLagOpts = append(streamLagOpts,\n\t\t\tmetric.WithDescription(\"The lag between message creation and consumption in a stream consumer group\"),\n\t\t\tmetric.WithUnit(\"s\"),\n\t\t)\n\t\tif cfg.histAggregation == HistogramAggregationExplicitBucket {\n\t\t\tstreamLagOpts = append(streamLagOpts,\n\t\t\t\tmetric.WithExplicitBucketBoundaries(cfg.bucketsStreamProcessingDuration...),\n\t\t\t)\n\t\t}\n\t\tstreamLag, err = meter.Float64Histogram(\n\t\t\tMetricStreamLag,","sourceCodeStart":296,"sourceCodeEnd":332,"githubUrl":"https://github.com/go-redis/redis/blob/36d97525cd8076aed67cddf54778e9ea84550929/extra/redisotel-native/redisotel.go#L296-L332","documentation":"Returned by createRecorder (redisotel.go:314) when meter.Int64Counter fails to create the 'redis.client.pubsub.messages' instrument. Only checked when MetricGroupPubSub is enabled.","triggerScenarios":"Calling Init with MetricGroupFlagPubSub enabled, and the OTel SDK rejects the Counter creation.","commonSituations":"Another library registered 'redis.client.pubsub.messages' with conflicting metadata; conflicting redisotel versions; broken MeterProvider.","solutions":["Reconcile other registrations of 'redis.client.pubsub.messages' to use Int64Counter with matching unit '{message}' and description","Resolve redisotel version conflicts in go.mod","Verify MeterProvider validity"],"exampleFix":"// before - conflicting metadata from another integration\nmeter.Int64Counter(\"redis.client.pubsub.messages\",\n    metric.WithDescription(\"pub/sub events\"))\n\n// after - match redisotel's description\nmeter.Int64Counter(\"redis.client.pubsub.messages\",\n    metric.WithDescription(\"The number of Pub/Sub messages sent or received\"))","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"if err := obs.Init(cfg); err != nil {\n    if strings.Contains(err.Error(), \"Pub/Sub messages metric\") {\n        log.Error(\"conflict on 'redis.client.pubsub.messages'; reconcile unit '{message}' and description\")\n    }\n}","preventionTips":["Ensure no other library registers 'redis.client.pubsub.messages' with conflicting metadata","Resolve redisotel version conflicts in go.mod","Verify MeterProvider validity"],"tags":["otel","redisotel-native","metrics","pubsub","counter"],"analyzedSha":"36d97525cd8076aed67cddf54778e9ea84550929","analyzedAt":"2026-08-06T01:08:27.376Z","schemaVersion":2}