SigNoz/signoz · error
there can be only one active query for value type panel
Error message
there can be only one active query for value type panel
What it means
A value-type panel must aggregate to a single number. If more than one query is active and produced results (len(results) > 1) with multiple enabled queries, QueryRange rejects it.
Source
Thrown at pkg/query-service/app/querier/querier.go:542
}
case v3.QueryTypePromQL:
results, errQueriesByName, err = q.runPromQueries(ctx, orgID, params)
case v3.QueryTypeClickHouseSQL:
ctx = context.WithValue(ctx, "enforce_max_result_rows", true)
if params.CompositeQuery.PanelType == v3.PanelTypeList || params.CompositeQuery.PanelType == v3.PanelTypeTrace {
results, errQueriesByName, err = q.runBuilderListQueries(ctx, params)
} else {
results, errQueriesByName, err = q.runClickHouseQueries(ctx, params)
}
default:
err = fmt.Errorf("invalid query type")
}
}
// return error if the number of series is more than one for value type panel
if params.CompositeQuery.PanelType == v3.PanelTypeValue {
if len(results) > 1 && params.CompositeQuery.EnabledQueries() > 1 {
err = fmt.Errorf("there can be only one active query for value type panel")
} else if len(results) == 1 && len(results[0].Series) > 1 {
err = fmt.Errorf("there can be only one result series for value type panel but got %d", len(results[0].Series))
}
}
return results, errQueriesByName, err
}
func (q *querier) QueriesExecuted() []string {
return q.queriesExecuted
}
func (q *querier) TimeRanges() [][]int {
return q.timeRanges
}
View on GitHub (pinned to 5069bf80b0)
Solutions
- Disable or delete all but one query in the composite query for value panels
- If you need multiple values, split into separate value panels
- Ensure filters/groupBy don't turn the single query into multiple series (see companion series error)
Example fix
// before
queries: [{name:"a",...},{name:"b",...}] // panelType: "value"
// after
queries: [{name:"a",...},{name:"b",...,disabled:true}] // only one enabled Defensive patterns
Strategy: validation
Validate before calling
if params.CompositeQuery.PanelType == v3.PanelTypeValue {
enabled := 0
for _, q := range params.CompositeQuery.Queries { if !q.Disabled { enabled++ } }
if enabled > 1 { return fmt.Errorf("value panel allows only one enabled query") }
} Type guard
func hasSingleEnabledQuery(cq *v3.CompositeQuery) bool {
n := 0
for _, q := range cq.Queries { if !q.Disabled { n++ } }
return n <= 1
} Prevention
- UI: auto-disable other queries when switching panel type to value
- Review panel JSON before saving value panels
When it happens
Trigger: QueryRange with PanelType == v3.PanelTypeValue where the composite query has two or more enabled queries each returning a result.
Common situations: Duplicating a query in the panel editor for a 'Big Number'/value widget and leaving both enabled, copying a graph panel config into a value panel without removing extra queries.
Related errors
- there can be only one result series for value type panel but
- CodeLicenseUnavailable
- CodeLicenseUnavailable
- CodeInvalidInput
- ErrCodeRoleInvalidInput
AI-assisted analysis of SigNoz/signoz@5069bf80b0 (2026-08-28).
Data as JSON: /api/errors/e831e1f501edb3e5.
Report an issue: GitHub.