{"record":{"id":"be813730d78dd1c4","repo":"ory/hydra","slug":"errunknownorder","errorCode":"ErrUnknownOrder","errorMessage":"unknown order","messagePattern":"unknown order","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"oryx/pagination/keysetpagination/paginator.go","lineNumber":32,"sourceCode":"type (\n\tItem = interface{ PageToken() PageToken }\n\n\tOrder string\n\n\tcolumnOrdering struct {\n\t\tname  string\n\t\torder Order\n\t}\n\tPaginator struct {\n\t\ttoken, defaultToken        PageToken\n\t\tsize, defaultSize, maxSize int\n\t\tisLast                     bool\n\t\tadditionalColumn           columnOrdering\n\t}\n\tOption func(*Paginator) *Paginator\n)\n\nvar ErrUnknownOrder = errors.New(\"unknown order\")\n\nconst (\n\tOrderDescending Order = \"DESC\"\n\tOrderAscending  Order = \"ASC\"\n\n\tDefaultSize    = 100\n\tDefaultMaxSize = 500\n)\n\nfunc (o Order) extract() (string, string, error) {\n\tswitch o {\n\tcase OrderAscending:\n\t\treturn \">\", string(o), nil\n\tcase OrderDescending:\n\t\treturn \"<\", string(o), nil\n\tdefault:\n\t\treturn \"\", \"\", ErrUnknownOrder\n\t}","sourceCodeStart":14,"sourceCodeEnd":50,"githubUrl":"https://github.com/ory/hydra/blob/4174065ffb052799890f7480f5360a877a67ffc1/oryx/pagination/keysetpagination/paginator.go#L14-L50","documentation":"Returned by Order.extract when the Order value is neither OrderAscending (\"ASC\") nor OrderDescending (\"DESC\"). It signals a programmer error: an Order was constructed from an unvalidated string, so the SQL comparison operator (< or >) for keyset pagination cannot be determined.","triggerScenarios":"Thrown at oryx/pagination/keysetpagination/paginator.go:32 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set the ordering to keysetpagination.OrderAscending or OrderDescending","If the order comes from user input, validate it against the known constants before building the Paginator","Propagate ErrUnknownOrder to the caller so it can be mapped to a 400 bad request"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4174065ffb052799890f7480f5360a877a67ffc1","analyzedAt":"2026-09-03T14:52:41.581Z","contentChangedAt":"2026-09-03T14:52:41.581Z","schemaVersion":2},"datasetVersion":"2026-09-10T17:17:09.494Z"}