{"record":{"id":"ad158927bd43080c","repo":"SigNoz/signoz","slug":"codelicenseunavailable-ad1589","errorCode":"CodeLicenseUnavailable","errorMessage":"no valid license found","messagePattern":"no valid license found","errorType":"error_code","errorClass":"errors.Error","httpStatus":null,"severity":"error","filePath":"ee/gateway/httpgateway/provider.go","lineNumber":217,"sourceCode":"\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (provider *Provider) DeleteIngestionKeyLimit(ctx context.Context, orgID valuer.UUID, limitID string) error {\n\t_, err := provider.do(ctx, orgID, http.MethodDelete, \"/v1/workspaces/me/limits/\"+limitID, nil, nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (provider *Provider) do(ctx context.Context, orgID valuer.UUID, method string, path string, queryParams url.Values, body []byte) ([]byte, error) {\n\tlicense, err := provider.licensing.GetActive(ctx, orgID)\n\tif err != nil {\n\t\treturn nil, errors.New(errors.TypeLicenseUnavailable, errors.CodeLicenseUnavailable, \"no valid license found\").WithAdditional(\"this feature requires a valid license\").WithAdditional(err.Error())\n\t}\n\n\t// build url\n\trequestURL := provider.config.URL.JoinPath(path)\n\n\t// add query params to the url\n\tif queryParams != nil {\n\t\trequestURL.RawQuery = queryParams.Encode()\n\t}\n\n\t// build request\n\trequest, err := http.NewRequestWithContext(ctx, method, requestURL.String(), bytes.NewBuffer(body))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// add headers needed to call gateway\n\trequest.Header.Set(\"Content-Type\", \"application/json\")","sourceCodeStart":199,"sourceCodeEnd":235,"githubUrl":"https://github.com/SigNoz/signoz/blob/5069bf80b08f1f00d7e014eccc09902f9871004f/ee/gateway/httpgateway/provider.go#L199-L235","documentation":"On the errors list endpoint, when order is provided the orderParam must be one of allowedOrderParams (supported sort fields such as timestamp/frequency); otherwise parseListErrorsRequest fails with 'given orderParam: %s is not allowed in query'.","triggerScenarios":"GET /api/v1/errors with a valid order=asc but orderParam set to an unlisted field (e.g. orderParam=service.name, orderParam=traceID) in your SigNoz version.","commonSituations":"Sorting by a field shown in the UI table that isn't sortable server-side; version differences in the allowed set; copy-pasting orderParam between /errors and other endpoints with different vocabularies.","solutions":["Set orderParam to a value from allowedOrderParams in parser.go for your version (typically 'timestamp' or 'frequency')","Omit both order and orderParam to use the default sort","Upgrade SigNoz if a newer version allows the field you need"],"exampleFix":"# before\ncurl '.../api/v1/errors?limit=100&order=asc&orderParam=service.name'\n\n# after\ncurl '.../api/v1/errors?limit=100&order=asc&orderParam=timestamp'","handlingStrategy":"validation","validationCode":"var allowedOrderParams = []string{\"timestamp\", \"frequency\"} // mirror parser.go for your version\nif op := q.Get(\"orderParam\"); op != \"\" && !slices.Contains(allowedOrderParams, op) {\n\tq.Del(\"orderParam\")\n}","typeGuard":"null","tryCatchPattern":"null","preventionTips":["Check allowedOrderParams for your SigNoz version","Omit sorting params entirely for default behavior","Don't assume every displayed column is sortable"],"tags":["signoz","errors-api","api-params","sorting","validation"],"backgroundTag":"invalid-query-param-value","analyzedSha":"5069bf80b08f1f00d7e014eccc09902f9871004f","analyzedAt":"2026-08-28T06:22:12.824Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}