{"record":{"id":"e831e1f501edb3e5","repo":"SigNoz/signoz","slug":"there-can-be-only-one-active-query-for-value-type","errorCode":null,"errorMessage":"there can be only one active query for value type panel","messagePattern":"there can be only one active query for value type panel","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/query-service/app/querier/querier.go","lineNumber":542,"sourceCode":"\t\t\t}\n\t\tcase v3.QueryTypePromQL:\n\t\t\tresults, errQueriesByName, err = q.runPromQueries(ctx, orgID, params)\n\t\tcase v3.QueryTypeClickHouseSQL:\n\t\t\tctx = context.WithValue(ctx, \"enforce_max_result_rows\", true)\n\t\t\tif params.CompositeQuery.PanelType == v3.PanelTypeList || params.CompositeQuery.PanelType == v3.PanelTypeTrace {\n\t\t\t\tresults, errQueriesByName, err = q.runBuilderListQueries(ctx, params)\n\t\t\t} else {\n\t\t\t\tresults, errQueriesByName, err = q.runClickHouseQueries(ctx, params)\n\t\t\t}\n\t\tdefault:\n\t\t\terr = fmt.Errorf(\"invalid query type\")\n\t\t}\n\t}\n\n\t// return error if the number of series is more than one for value type panel\n\tif params.CompositeQuery.PanelType == v3.PanelTypeValue {\n\t\tif len(results) > 1 && params.CompositeQuery.EnabledQueries() > 1 {\n\t\t\terr = fmt.Errorf(\"there can be only one active query for value type panel\")\n\t\t} else if len(results) == 1 && len(results[0].Series) > 1 {\n\t\t\terr = fmt.Errorf(\"there can be only one result series for value type panel but got %d\", len(results[0].Series))\n\t\t}\n\t}\n\n\treturn results, errQueriesByName, err\n}\n\nfunc (q *querier) QueriesExecuted() []string {\n\treturn q.queriesExecuted\n}\n\nfunc (q *querier) TimeRanges() [][]int {\n\treturn q.timeRanges\n}\n","sourceCodeStart":524,"sourceCodeEnd":558,"githubUrl":"https://github.com/SigNoz/signoz/blob/5069bf80b08f1f00d7e014eccc09902f9871004f/pkg/query-service/app/querier/querier.go#L524-L558","documentation":"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.","triggerScenarios":"QueryRange with PanelType == v3.PanelTypeValue where the composite query has two or more enabled queries each returning a result.","commonSituations":"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.","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)"],"exampleFix":"// before\nqueries: [{name:\"a\",...},{name:\"b\",...}] // panelType: \"value\"\n// after\nqueries: [{name:\"a\",...},{name:\"b\",...,disabled:true}] // only one enabled","handlingStrategy":"validation","validationCode":"if params.CompositeQuery.PanelType == v3.PanelTypeValue {\n    enabled := 0\n    for _, q := range params.CompositeQuery.Queries { if !q.Disabled { enabled++ } }\n    if enabled > 1 { return fmt.Errorf(\"value panel allows only one enabled query\") }\n}","typeGuard":"func hasSingleEnabledQuery(cq *v3.CompositeQuery) bool {\n    n := 0\n    for _, q := range cq.Queries { if !q.Disabled { n++ } }\n    return n <= 1\n}","tryCatchPattern":null,"preventionTips":["UI: auto-disable other queries when switching panel type to value","Review panel JSON before saving value panels"],"tags":["panel-type","value-panel","validation"],"backgroundTag":"request-validation-failed","analyzedSha":"5069bf80b08f1f00d7e014eccc09902f9871004f","analyzedAt":"2026-08-28T06:22:12.824Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}