invalid_request_uri
Docs version v1 (main)Nauthera is pre-1.0, in a design-partner program
The request_uri is unknown, expired, already used, pushed by another client, or not a fetchable registered URL (RFC 9126 §2.2, RFC 9101 §5.2, §6.2).
Meaning
At /authorize, a request_uri is redeemed against the pushed requests /par stored.
One that is unknown, expired, spent or pushed by another client is a direct refusal,
so on the wire it is invalid_request. Any other request_uri names a request object
by reference: it must be one of the client's registered request_uris (compared
without the fragment), and is refused when it is not, when the object cannot be
fetched (the host is not a global address, the fetch fails or times out, the status is
not 200, the body is too large), or when the deployment fetches none. A request that
carries both request and request_uri is refused directly too. The code itself is
redirected to the client when a reference that validated was used up by a concurrent
authorization, or expired, before the code could be issued.
Impact
The user is not signed in to the application. A reference outlives a normal sign-in,
but a user who leaves the screen open past its lifetime, or a browser that replays the
same /authorize URL, will meet it. The application has to push a new request.
Diagnosis
- The audit record under
oauth.has reasonauthorization. requested invalid_request_uriorrequest_, and a cause such asuri_ client_ mismatch request_,uri_ not_ registered request_uri_fetch_failed,request_uri_not_pushed,request_and_request_uriorrequest_uri_consumed. - A
request_names the client that pushed the request: someone presented another client's reference.uri_ client_ mismatch
Mitigation
- As a client developer: push a fresh request for every sign-in and use its
request_urionce, with the sameclient_id. To pass an object by reference, register its URL inrequest_urisand serve it over https from a public address. - As an operator: a run of
request_is a replay attempt; check the client and address it came from.uri_ client_ mismatch - As a user: start the sign-in again from the application.
Escalation
If a fresh reference is refused at once, check Redis reachability from every replica,
then open an issue with the request id and the server version. Never attach the
request_uri.
OAuth error runbooks · Generated from internal/ in nauthera-server.