ory/hydra · error

ErrUnknownOrder

ErrUnknownOrder

Error message

unknown order

What it means

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.

Source

Thrown at oryx/pagination/keysetpagination/paginator.go:32

type (
	Item = interface{ PageToken() PageToken }

	Order string

	columnOrdering struct {
		name  string
		order Order
	}
	Paginator struct {
		token, defaultToken        PageToken
		size, defaultSize, maxSize int
		isLast                     bool
		additionalColumn           columnOrdering
	}
	Option func(*Paginator) *Paginator
)

var ErrUnknownOrder = errors.New("unknown order")

const (
	OrderDescending Order = "DESC"
	OrderAscending  Order = "ASC"

	DefaultSize    = 100
	DefaultMaxSize = 500
)

func (o Order) extract() (string, string, error) {
	switch o {
	case OrderAscending:
		return ">", string(o), nil
	case OrderDescending:
		return "<", string(o), nil
	default:
		return "", "", ErrUnknownOrder
	}

View on GitHub (pinned to 4174065ffb)

Solutions

  1. Set the ordering to keysetpagination.OrderAscending or OrderDescending
  2. If the order comes from user input, validate it against the known constants before building the Paginator
  3. Propagate ErrUnknownOrder to the caller so it can be mapped to a 400 bad request
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at oryx/pagination/keysetpagination/paginator.go:32 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ory/hydra@4174065ffb (2026-09-03). Data as JSON: /api/errors/be813730d78dd1c4. Report an issue: GitHub.