{"record":{"id":"3430307e615a7e14","repo":"SigNoz/signoz","slug":"alpha-param-missing-in-query","errorCode":null,"errorMessage":"alpha param missing in query","messagePattern":"alpha param missing in query","errorType":"validation","errorClass":null,"httpStatus":400,"severity":"error","filePath":"pkg/query-service/model/v3/v3.go","lineNumber":1131,"sourceCode":"\t\t\t}\n\t\t\tif function.Name == FunctionNameTimeShift {\n\t\t\t\tif len(function.Args) == 0 {\n\t\t\t\t\treturn fmt.Errorf(\"timeShiftBy param missing in query\")\n\t\t\t\t}\n\t\t\t\t_, ok := function.Args[0].(float64)\n\t\t\t\tif !ok {\n\t\t\t\t\t// if string, attempt to convert to float\n\t\t\t\t\ttimeShiftBy, err := strconv.ParseFloat(function.Args[0].(string), 64)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn fmt.Errorf(\"timeShiftBy param should be a number\")\n\t\t\t\t\t}\n\t\t\t\t\tfunction.Args[0] = timeShiftBy\n\t\t\t\t}\n\t\t\t} else if function.Name == FunctionNameEWMA3 ||\n\t\t\t\tfunction.Name == FunctionNameEWMA5 ||\n\t\t\t\tfunction.Name == FunctionNameEWMA7 {\n\t\t\t\tif len(function.Args) == 0 {\n\t\t\t\t\treturn fmt.Errorf(\"alpha param missing in query\")\n\t\t\t\t}\n\t\t\t\talpha, ok := function.Args[0].(float64)\n\t\t\t\tif !ok {\n\t\t\t\t\t// if string, attempt to convert to float\n\t\t\t\t\talpha, err := strconv.ParseFloat(function.Args[0].(string), 64)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn fmt.Errorf(\"alpha param should be a float\")\n\t\t\t\t\t}\n\t\t\t\t\tfunction.Args[0] = alpha\n\t\t\t\t}\n\t\t\t\tif alpha < 0 || alpha > 1 {\n\t\t\t\t\treturn fmt.Errorf(\"alpha param should be between 0 and 1\")\n\t\t\t\t}\n\t\t\t} else if function.Name == FunctionNameCutOffMax ||\n\t\t\t\tfunction.Name == FunctionNameCutOffMin ||\n\t\t\t\tfunction.Name == FunctionNameClampMax ||\n\t\t\t\tfunction.Name == FunctionNameClampMin {\n\t\t\t\tif len(function.Args) == 0 {","sourceCodeStart":1113,"sourceCodeEnd":1149,"githubUrl":"https://github.com/SigNoz/signoz/blob/5069bf80b08f1f00d7e014eccc09902f9871004f/pkg/query-service/model/v3/v3.go#L1113-L1149","documentation":"The EWMA smoothing functions (EWMA3/EWMA5/EWMA7) require an alpha argument. Validate() returns this when the function has an empty Args slice.","triggerScenarios":"\"functions\":[{\"name\":\"EWMA3\"}] with no args, or an args array that is present but empty.","commonSituations":"UI or API payload construction that omits the smoothing factor; templates with a conditional alpha that evaluates to nothing.","solutions":["Add an alpha value between 0 and 1, e.g. \"args\":[0.5]","Ensure the client always sends the alpha field for EWMA functions"],"exampleFix":"// before\n{\"name\":\"EWMA3\"}\n// after\n{\"name\":\"EWMA3\",\"args\":[0.5]}","handlingStrategy":"validation","validationCode":"for _, f := range qb.Functions {\n  if strings.HasPrefix(string(f.Name), \"EWMA\") && len(f.Args) == 0 { return errors.New(\"EWMA requires alpha\") }\n}","typeGuard":"func ewmaHasAlpha(f v3.Function) bool { return !strings.HasPrefix(string(f.Name), \"EWMA\") || len(f.Args) > 0 }","tryCatchPattern":null,"preventionTips":["Default alpha in the UI (e.g. 0.5) so it's never omitted"],"tags":["signoz","query-builder","ewma","validation"],"backgroundTag":"query-validation-failed","analyzedSha":"5069bf80b08f1f00d7e014eccc09902f9871004f","analyzedAt":"2026-08-28T06:22:12.824Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}