SigNoz/signoz · warning
metric metadata not found: %s
Error message
metric metadata not found: %s
What it means
Returned when the requested metric name has no entry in the resolved metadata map, i.e. SigNoz has no recorded type/temporality/unit for that metric. This is a plain lookup miss after GetUpdatedMetricsMetadata succeeded, so it indicates unknown or not-yet-indexed metric names rather than an infrastructure failure.
Source
Thrown at pkg/query-service/app/clickhouseReader/reader.go:3256
metadataMap, apiError := r.GetUpdatedMetricsMetadata(ctx, orgID, metricName)
if apiError != nil {
r.logger.Error("Error in getting metric cached metadata", errorsV2.Attr(apiError))
return nil, fmt.Errorf("error fetching metric metadata: %s", apiError.Err.Error())
}
// Defaults in case metadata is not found
var (
deltaExists bool
isMonotonic bool
temporality string
description string
metricType string
unit string
)
metadata, ok := metadataMap[metricName]
if !ok {
return nil, fmt.Errorf("metric metadata not found: %s", metricName)
}
metricType = string(metadata.MetricType)
temporality = string(metadata.Temporality)
isMonotonic = metadata.IsMonotonic
description = metadata.Description
unit = metadata.Unit
if temporality == string(v3.Delta) {
deltaExists = true
}
// 2. Only for Histograms, get `le` buckets
var leFloat64 []float64
if metricType == string(v3.MetricTypeHistogram) {
reductionEnabled := r.fl.BooleanOrEmpty(ctx, flagger.FeatureEnableMetricsReduction, featuretypes.NewFlaggerEvaluationContext(orgID))
var query string
if reductionEnabled {View on GitHub (pinned to 5069bf80b0)
Solutions
- Verify the exact metric name spelling, including dots/underscores and case
- Confirm the metric exists: SELECT DISTINCT metric_name FROM signoz_metrics.time_series
- Wait for the metadata refresh interval and retry if the metric was just created
- If metadata is persistently missing, check the metrics metadata updater job / signoz_metrics_metadata table
Defensive patterns
Strategy: validation
Validate before calling
names, err := fetchMetricNames(ctx)
if !slices.Contains(names, metricName) {
return fmt.Errorf("unknown metric %q", metricName)
} Try / catch
if err != nil {
if strings.Contains(err.Error(), "metric metadata not found") {
// surface friendly message, suggest available metrics
}
} Prevention
- Validate metric names against the ingested list before calling
- Wait one metadata refresh cycle after first ingest
- Use dropdowns populated from /metrics instead of free-text
When it happens
Trigger: Querying histogram buckets or similar metadata-dependent endpoints for a metric name that was never ingested, is misspelled, or was ingested so recently that the metadata cache/job hasn't picked it up.
Common situations: Typos in dashboard/widget metric names; querying immediately after a new metric is first emitted (metadata updater runs periodically); metrics from deleted/renamed instruments; environment mismatch (querying prod metric name in dev).
Related errors
AI-assisted analysis of SigNoz/signoz@5069bf80b0 (2026-08-28).
Data as JSON: /api/errors/500cabd06cb3b5a5.
Report an issue: GitHub.