{"record":{"id":"83139ef7d80c7e2f","repo":"pinpoint-apm/pinpoint","slug":"invalid-order-by-type-not-supported","errorCode":null,"errorMessage":"Invalid order by type :  not supported.","messagePattern":"Invalid order by type :  not supported\\.","errorType":"validation","errorClass":"InvalidParameterException","httpStatus":null,"severity":"warning","filePath":"uristat/uristat-web/src/main/java/com/navercorp/pinpoint/uristat/web/util/UriStatSummaryQueryParameter.java","lineNumber":170,"sourceCode":"            return self();\n        }\n\n        public Builder setApplicationName(String applicationName) {\n            this.applicationName = StringPrecondition.requireHasLength(applicationName, \"applicationName\");\n            return self();\n        }\n\n        public Builder setAgentId(String agentId) {\n            if (StringUtils.hasLength(agentId)) {\n                this.agentId = agentId;\n            }\n            return self();\n        }\n\n        public Builder setOrderby(String orderBy) throws InvalidParameterException {\n            UriStatSummaryQueryParameter.OrderBy order = OrderBy.fromValue(orderBy);\n            if (order == null) {\n                throw new InvalidParameterException(\"Invalid order by type : \" + orderBy + \" not supported.\");\n            }\n            this.orderBy = order;\n            return self();\n        }\n\n        public Builder setDesc(boolean desc) {\n            if (desc) {\n                this.isDesc = \"desc\";\n            } else {\n                this.isDesc = \"asc\";\n            }\n            return self();\n        }\n\n        public Builder setLimit(int limit) {\n            this.limit = Ints.constrainToRange(limit, 50, 200);\n            return self();\n        }","sourceCodeStart":152,"sourceCodeEnd":188,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/uristat/uristat-web/src/main/java/com/navercorp/pinpoint/uristat/web/util/UriStatSummaryQueryParameter.java#L152-L188","documentation":"The Builder.setOrderby validates the orderBy string against the OrderBy enum via OrderBy.fromValue; unknown values yield null and an InvalidParameterException is thrown. Only the enumerated column names are accepted for sorting UriStat summary queries.","triggerScenarios":"Builder.setOrderby(\"total\") etc. where the string does not equal any OrderBy value (case-sensitive mismatch included).","commonSituations":"Clients passing sort field names from another API version; typos or camelCase vs underscore mismatches in the orderBy query parameter.","solutions":["Pass one of the OrderBy.fromValue-recognized strings (check the OrderBy enum's accepted values).","Normalize user input (case, separators) before calling setOrderby.","Catch InvalidParameterException and fall back to a default ordering."],"exampleFix":"// before\nbuilder.setOrderby(\"TotalCount\");\n// after\nbuilder.setOrderby(\"totalCount\"); // value accepted by OrderBy.fromValue","handlingStrategy":"validation","validationCode":"OrderBy o = UriStatSummaryQueryParameter.OrderBy.fromValue(orderBy);\nif (o == null) orderBy = defaultOrderBy;","typeGuard":null,"tryCatchPattern":"try { builder.setOrderby(orderBy); } catch (InvalidParameterException e) { builder.setOrderby(defaultOrderBy); }","preventionTips":["Whitelist sort fields in the client","Normalize case before passing","Document accepted orderBy values in the API"],"tags":["uristat","query-parameter","invalid-enum"],"backgroundTag":"invalid-enum-value","analyzedSha":"744c3d3075e595656abb1ae331ad2c0e4c9eb996","analyzedAt":"2026-09-07T18:48:45.289Z","contentChangedAt":"2026-09-07T18:48:45.289Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}