netdata/netdata · error
%w: duplicate quantile %v
Error message
%w: duplicate quantile %v
What it means
Error "%w: duplicate quantile %v" thrown in netdata/netdata.
Source
Thrown at src/go/pkg/metrix/summary.go:226
if schema == nil || len(schema.quantiles) == 0 {
if len(point.Quantiles) > 0 {
panic(fmt.Errorf("%w: quantiles are not configured for this instrument", errSummaryPoint))
}
return point.Count, point.Sum, nil
}
if len(point.Quantiles) != len(schema.quantiles) {
panic(fmt.Errorf("%w: quantile count mismatch", errSummaryPoint))
}
values := make([]SampleValue, len(schema.quantiles))
seen := make(map[float64]struct{}, len(schema.quantiles))
for _, q := range point.Quantiles {
if math.IsNaN(q.Quantile) || q.Quantile < 0 || q.Quantile > 1 {
panic(fmt.Errorf("%w: invalid quantile %v", errSummaryPoint, q.Quantile))
}
if _, ok := seen[q.Quantile]; ok {
panic(fmt.Errorf("%w: duplicate quantile %v", errSummaryPoint, q.Quantile))
}
seen[q.Quantile] = struct{}{}
idx := summaryQuantileIndex(schema.quantiles, q.Quantile)
if idx == -1 {
panic(fmt.Errorf("%w: quantile %v is not declared", errSummaryPoint, q.Quantile))
}
// A summary may report a NaN quantile value (e.g. an empty observation window). Store it;
// chartengine renders a non-finite dimension value as a gap (SETEMPTY). Reject only Inf.
if math.IsInf(float64(q.Value), 0) {
panic(fmt.Errorf("%w: infinite quantile value %v", errSummaryPoint, q.Value))
}
values[idx] = q.Value
}
if len(seen) != len(schema.quantiles) {
panic(fmt.Errorf("%w: missing quantiles in point", errSummaryPoint))
}View on GitHub (pinned to 4864de85e2)
Solutions
- The same quantile was declared more than once.
- Remove the duplicate quantile from the schema declaration.
When it happens
Trigger: Thrown at src/go/pkg/metrix/summary.go:226 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of netdata/netdata@4864de85e2 (2026-08-15).
Data as JSON: /api/errors/e13c4a0a02f81fc7.
Report an issue: GitHub.