Jadpo is experimental and not ready for production. These docs follow the compiler's main branch as of 30 Oct 2026. What's built · Install 0.1.0
jadpo
Reference: Identity

Identity

Failures

Jadpo raises the sign-in failures itself. You never declare them or list them in an action's fails (Declaring a failure). A client gets them in the usual failure body, with the code and status below.

Condition Code Kind HTTP
No credential authentication_required unauthenticated 401
Malformed, expired, tampered or wrong-audience credential invalid_credentials unauthenticated 401
Two credentials, or a cookie and a bearer together ambiguous_credentials unauthenticated 401
Cookie write without the right Origin or CSRF header csrf_rejected not_permitted 403
The caller's record is not active user_disabled / service_disabled not_permitted 403
A service calls a route that selects current_principal.user not_permitted not_permitted 403
The database or OIDC provider cannot be reached authentication_unavailable unavailable 503
Keys or issuer missing or invalid authentication_misconfigured misconfigured 500
A magic link expired, used, replaced or unknown sign_in_link_expired unauthenticated 401
A magic link opened in another browser with same_browser: true sign_in_link_other_browser unauthenticated 401
A code wrong, used, ended, expired or replaced, or no code for the address sign_in_code_invalid unauthenticated 401
An address reached failed_codes_per_day: sign_in_codes_disabled rate_limited 429
on_first_sign_in refused, or no user and no on_first_sign_in: for a provider or token sign_in_refused not_permitted 403
Too many sends to one address rate_limited rate_limited 429
magic_links.request given a path to go back to that isn't on the app's site sign_in_return_invalid invalid_value 422
A passkey ceremony's challenge expired, was used, was replaced or came from another browser or session passkey_challenge_expired unauthenticated 401
A passkey's answer doesn't check (origin, relying party, presence, verification, signature or counter), or its passkey isn't registered passkey_rejected unauthenticated 401
The passkey is registered already passkey_already_registered conflict 409
The person has 20 passkeys already passkey_limit_reached conflict 409
No passkey of the signed-in person has that id passkey_not_found not_found 404

user_disabled and service_disabled are built in and never declared, as are the sign_in_ and passkey_ failures. Their wording for people is Jadpo's own (Built-in services).

With a revocation delay, a disabled caller is noticed within that delay. The log records the way in, the credential's record id and the reason, never the credential.

Markdown for agents: /docs/identity-failures.md.Built from Jadpo main at a707efb.