Ultimate

X_QUERY_INPUT_UNENCODABLE

Means

a query input cannot be carried in a query string

Typical cause

a read declaring a nested t.object/t.record/t.money member, an array or union of one, a REQUIRED t.nullable(...) member, or a top-level input that is not an object, or a member named _first or _after — the two page controls the route reads off the search string before the schema sees it. A read is served as GET /_x/query/<name>, so its input is characters: the typed client would encode a structure as JSON text and skip a null, and coerceQuery has no inverse for either. Raised at query(), in the file that declared it

Fix

flatten the key into scalar arguments (status: t.string, limit: t.number), spell an absent value as .optional() rather than t.nullable(...), or declare it as an action() if it really needs a JSON body

Listed under Policy and authz

This page as markdown