argoproj/argo-workflows · error
internal error creating metric instrument of unknown type %v
Error message
internal error creating metric instrument of unknown type %v
What it means
CreateInstrument's switch on instrument type fell through to default: an instrument was requested with an otel instrument kind this build does not know how to create. Barring version skew, this is an internal programming error — the enum is closed and all cases should be handled.
Source
Thrown at util/telemetry/instrument.go:128
)
instPtr = &inst
err = insterr
case Int64UpDownCounter:
inst, insterr := (*m.otelMeter).Int64UpDownCounter(name,
metric.WithDescription(desc),
metric.WithUnit(unit),
)
instPtr = &inst
err = insterr
case Int64Counter:
inst, insterr := (*m.otelMeter).Int64Counter(name,
metric.WithDescription(desc),
metric.WithUnit(unit),
)
instPtr = &inst
err = insterr
default:
return fmt.Errorf("internal error creating metric instrument of unknown type %v", instType)
}
if err != nil {
return err
}
m.AddInstrument(name, &Instrument{
name: name,
description: desc,
otel: instPtr,
})
return nil
}
func (m *Metrics) buckets(name string, defaultBuckets []float64) []float64 {
if opts, ok := m.config.Modifiers[name]; ok {
if len(opts.HistogramBuckets) > 0 {
buckets := opts.HistogramBuckets
sort.Float64s(buckets)
return bucketsView on GitHub (pinned to 35bff19146)
Solutions
- Ensure the InstrumentType passed matches a supported otel instrument kind
- Update argo-workflows if a stale binary is mixed with newer instrumentation code
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at util/telemetry/instrument.go:128 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of argoproj/argo-workflows@35bff19146 (2026-09-03).
Data as JSON: /api/errors/4f45d04b68610acf.
Report an issue: GitHub.