{"record":{"id":"66bc2898837845ae","repo":"SigNoz/signoz","slug":"error-in-prom-queries","errorCode":null,"errorMessage":"error in prom queries","messagePattern":"error in prom queries","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/query-service/app/querier/querier.go","lineNumber":263,"sourceCode":"\tresults := make([]*v3.Result, 0)\n\terrQueriesByName := make(map[string]error)\n\tvar errs []error\n\n\tfor result := range channelResults {\n\t\tif result.Err != nil {\n\t\t\terrs = append(errs, result.Err)\n\t\t\terrQueriesByName[result.Name] = result.Err\n\t\t\tcontinue\n\t\t}\n\t\tresults = append(results, &v3.Result{\n\t\t\tQueryName: result.Name,\n\t\t\tSeries:    result.Series,\n\t\t})\n\t}\n\n\tvar err error\n\tif len(errs) > 0 {\n\t\terr = fmt.Errorf(\"error in prom queries\")\n\t}\n\n\treturn results, errQueriesByName, err\n}\n\nfunc (q *querier) runClickHouseQueries(ctx context.Context, params *v3.QueryRangeParamsV3) ([]*v3.Result, map[string]error, error) {\n\tchannelResults := make(chan channelResult, len(params.CompositeQuery.ClickHouseQueries))\n\tvar wg sync.WaitGroup\n\tfor queryName, clickHouseQuery := range params.CompositeQuery.ClickHouseQueries {\n\t\tif clickHouseQuery.Disabled {\n\t\t\tcontinue\n\t\t}\n\t\twg.Add(1)\n\t\tgo func(queryName string, clickHouseQuery *v3.ClickHouseQuery) {\n\t\t\tdefer wg.Done()\n\t\t\tseries, err := q.execClickHouseQuery(ctx, clickHouseQuery.Query)\n\t\t\tchannelResults <- channelResult{Err: err, Name: queryName, Query: clickHouseQuery.Query, Series: series}\n\t\t}(queryName, clickHouseQuery)","sourceCodeStart":245,"sourceCodeEnd":281,"githubUrl":"https://github.com/SigNoz/signoz/blob/5069bf80b08f1f00d7e014eccc09902f9871004f/pkg/query-service/app/querier/querier.go#L245-L281","documentation":"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.","triggerScenarios":"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).","commonSituations":"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.","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"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"results, errByName, err := querier.QueryRange(ctx, orgID, params)\nif err != nil {\n    if strings.Contains(err.Error(), \"error in prom queries\") {\n        for name, qerr := range errByName {\n            log.Printf(\"prom query %s failed: %v\", name, qerr)\n        }\n        // degrade: drop failed queries, keep rest\n    }\n    return err\n}","preventionTips":["Validate PromQL expressions before adding them to composite queries","Keep time range/step within Prometheus max-sample limits","Monitor Prometheus availability from query-service"],"tags":["promql","prometheus","query-range","composite-query"],"backgroundTag":"backend-query-execution-failed","analyzedSha":"5069bf80b08f1f00d7e014eccc09902f9871004f","analyzedAt":"2026-08-28T06:22:12.824Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}