Skip to content

Error Codes

Errors use domain:reason format. details is only included in development mode.

Auth

CodeHTTPDescription
auth:invalid_credentials401Invalid email/password combination

User

CodeHTTPDescription
user:invalid_password401Wrong password
user:password_not_set401User has no password
user:invalid_session401Session is invalid
user:not_verified401Email not verified
user:not_found404User not found
user:unauthorized401Not authenticated
user:banned403User is banned
user:permission_insufficient403Insufficient permissions
user:handle_already_exists409Handle already taken
user:email_already_exists409Email already registered
user:token_expired401Token expired
user:no_refresh_token401No refresh token available
user:invalid_token401Invalid token

Session

CodeHTTPDescription
session:invalid_user_id401Invalid user ID in session
session:expired401Session expired
session:not_found401Session not found

OAuth

CodeHTTPDescription
oauth:invalid_auth_url400Invalid auth URL
oauth:invalid_token_url400Invalid token URL
oauth:invalid_redirect_url400Invalid redirect URL
oauth:token_exchange_failed400OAuth token exchange failed
oauth:user_info_fetch_failed400Failed to fetch provider user info
oauth:user_info_parse_failed500Failed to parse provider user info
oauth:account_already_linked409OAuth account already linked
oauth:connection_not_found404OAuth connection not found
oauth:cannot_unlink_last_connection400Cannot unlink last login method
oauth:invalid_image_url400Invalid provider image URL
oauth:invalid_state400Invalid OAuth state
oauth:state_expired400Expired OAuth state
oauth:handle_required400Handle required
oauth:email_already_exists409Email already exists
oauth:email_not_verified400Provider email not verified

Password

CodeHTTPDescription
password:required_for_update400Current password required
password:incorrect400Current password incorrect
password:cannot_update_oauth_only400OAuth-only account cannot update password
password:new_password_missing400New password missing
password:already_set400Password already set

Token

CodeHTTPDescription
token:invalid_verification400Invalid verification token
token:expired_verification400Expired verification token
token:email_mismatch400Token email mismatch
token:invalid_reset400Invalid reset token
token:expired_reset400Expired reset token
token:invalid_email_change400Invalid email-change token

Email

CodeHTTPDescription
email:already_verified400Email already verified

TOTP

CodeHTTPDescription
totp:already_enabled409TOTP already enabled
totp:not_enabled400TOTP not enabled
totp:invalid_code400Invalid TOTP/backup code
totp:temp_token_invalid400Invalid temporary login token
totp:temp_token_expired400Expired temporary login token
totp:backup_code_exhausted401Backup codes exhausted
totp:secret_generation_failed500TOTP secret generation failed
totp:qr_generation_failed500QR generation failed

File

CodeHTTPDescription
file:upload_error400File upload failed
file:not_found400File not found
file:read_error400File read failed

General

CodeHTTPDescription
general:bad_request400Bad request
general:validation_error400Validation error
general:invalid_ip_address400Invalid IP address
FORBIDDEN403Forbidden
FILE_TOO_LARGE413Payload too large

Rate Limit

CodeHTTPDescription
rate_limit:exceeded429Too many requests

Turnstile

CodeHTTPDescription
turnstile:token_missing400Turnstile token missing
turnstile:verification_failed403Turnstile verification failed
turnstile:service_error503Turnstile service error
CodeHTTPDescription
meilisearch:query_failed500Search query failed

EventStream

CodeHTTPDescription
eventstream:publish_failed503Event publish failed

Worker/System

CodeHTTPDescription
worker:connection_failed503Worker connection failed
worker:response_invalid502Invalid worker response
worker:verification_email_send_failed502Verification email send failed
worker:password_reset_email_send_failed502Password reset email send failed
system:internal_error400Internal error
system:hashing_error500Hashing error
system:not_found404Not found
system:transaction_error500Transaction error
system:database_error500Database error
system:token_creation_error500Token creation error

Released under the MIT License.