SigNoz/signoz · error
error in prom queries
Error message
error in prom queries
What it means
Aggregated error returned by runPromQueries when one or more PromQL sub-queries of a composite query fail. The individual per-query errors are returned in the errQueriesByName map keyed by query name; this top-level error just signals that at least one query in the batch errored.
Source
Thrown at pkg/query-service/app/querier/querier.go:263
results := make([]*v3.Result, 0)
errQueriesByName := make(map[string]error)
var errs []error
for result := range channelResults {
if result.Err != nil {
errs = append(errs, result.Err)
errQueriesByName[result.Name] = result.Err
continue
}
results = append(results, &v3.Result{
QueryName: result.Name,
Series: result.Series,
})
}
var err error
if len(errs) > 0 {
err = fmt.Errorf("error in prom queries")
}
return results, errQueriesByName, err
}
func (q *querier) runClickHouseQueries(ctx context.Context, params *v3.QueryRangeParamsV3) ([]*v3.Result, map[string]error, error) {
channelResults := make(chan channelResult, len(params.CompositeQuery.ClickHouseQueries))
var wg sync.WaitGroup
for queryName, clickHouseQuery := range params.CompositeQuery.ClickHouseQueries {
if clickHouseQuery.Disabled {
continue
}
wg.Add(1)
go func(queryName string, clickHouseQuery *v3.ClickHouseQuery) {
defer wg.Done()
series, err := q.execClickHouseQuery(ctx, clickHouseQuery.Query)
channelResults <- channelResult{Err: err, Name: queryName, Query: clickHouseQuery.Query, Series: series}
}(queryName, clickHouseQuery)View on GitHub (pinned to 5069bf80b0)
Solutions
- Inspect the returned errQueriesByName map to identify which query failed and its underlying error
- Validate the PromQL expression (e.g. via the Prometheus /api/v1/query endpoint) before sending the composite query
- Check the query-service to Prometheus connectivity and limits (timeout, max samples) and retry
- Reduce the time range or step to keep cardinality/samples within limits
Defensive patterns
Strategy: try-catch
Try / catch
results, errByName, err := querier.QueryRange(ctx, orgID, params)
if err != nil {
if strings.Contains(err.Error(), "error in prom queries") {
for name, qerr := range errByName {
log.Printf("prom query %s failed: %v", name, qerr)
}
// degrade: drop failed queries, keep rest
}
return err
} Prevention
- Validate PromQL expressions before adding them to composite queries
- Keep time range/step within Prometheus max-sample limits
- Monitor Prometheus availability from query-service
When it happens
Trigger: Calling QueryRange with a composite query containing PromQL builder/prom queries where one of the queries executed against Prometheus/Prometheus-compatible backend fails (bad PromQL expression, unreachable Prometheus, timeout, rate limit).
Common situations: Invalid or experimental PromQL syntax in a panel, Prometheus endpoint misconfigured/unreachable in the SigNoz deployment, query range/step exceeding Prometheus limits, metric name typos.
Related errors
- error in clickhouse queries
- CodeLicenseUnavailable
- end timestamp must not be before start time
- cannot parse the request body: %v
- error in builder queries
AI-assisted analysis of SigNoz/signoz@5069bf80b0 (2026-08-28).
Data as JSON: /api/errors/66bc2898837845ae.
Report an issue: GitHub.