Skip to content

Error Codes

All errors follow the format domain:operation. The details field is only included in development mode.

User Errors

CodeHTTP StatusDescription
user:invalid_password401Wrong password
user:password_not_set401User has no password (OAuth-only account)
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 is taken
user:email_already_exists409Email is already registered
user:token_expired401Auth token has expired
user:no_refresh_token401No refresh token available
user:invalid_token401Auth token is invalid

Session Errors

CodeHTTP StatusDescription
session:invalid_user_id401Session user ID is malformed
session:expired401Session has expired (max lifetime)
session:not_found401Session not found in Redis

OAuth Errors

CodeHTTP StatusDescription
oauth:invalid_auth_url400Failed to build authorization URL
oauth:invalid_token_url400Failed to build token exchange URL
oauth:invalid_redirect_url400Invalid redirect URI
oauth:token_exchange_failed400Code-to-token exchange failed
oauth:user_info_fetch_failed400Failed to fetch user info from provider
oauth:user_info_parse_failed500Failed to parse provider user info
oauth:account_already_linked409OAuth account already linked to another user
oauth:connection_not_found404OAuth connection not found
oauth:cannot_unlink_last_connection400Cannot unlink the last OAuth connection (no password)
oauth:invalid_image_url400Invalid avatar URL from provider
oauth:invalid_state400OAuth state parameter mismatch
oauth:state_expired400OAuth state has expired
oauth:handle_required400Handle required for new OAuth signup
oauth:email_already_exists409Email already exists
oauth:email_not_verified400Provider email not verified

Password Errors

CodeHTTP StatusDescription
password:required_for_update400Current password required
password:incorrect400Current password is wrong
password:cannot_update_oauth_only400Cannot set password on OAuth-only account
password:new_password_missing400New password not provided
password:already_set400Password is already set

Token Errors

CodeHTTP StatusDescription
token:invalid_verification400Email verification token is invalid
token:expired_verification400Email verification token has expired
token:email_mismatch400Token email doesn't match
token:invalid_reset400Password reset token is invalid
token:expired_reset400Password reset token has expired
token:invalid_email_change400Email change token is invalid

Email Errors

CodeHTTP StatusDescription
email:already_verified400Email is already verified

TOTP Errors

CodeHTTP StatusDescription
totp:already_enabled409TOTP is already enabled
totp:not_enabled400TOTP is not enabled
totp:invalid_code400Invalid TOTP or backup code
totp:temp_token_invalid400Temporary login token is invalid
totp:temp_token_expired400Temporary login token has expired
totp:backup_code_exhausted401All backup codes used
totp:secret_generation_failed500Failed to generate TOTP secret
totp:qr_generation_failed500Failed to generate QR code

Post Errors

CodeHTTP StatusDescription
post:not_found404Post not found

File Errors

CodeHTTP StatusDescription
file:upload_error400File upload failed
file:not_found400File not found
file:read_error400File read failed

General Errors

CodeHTTP StatusDescription
general:bad_request400Bad request
general:validation_error400Validation failed
general:invalid_ip_address400Invalid IP address
FORBIDDEN403Access forbidden
FILE_TOO_LARGE413Payload too large

Rate Limiting

CodeHTTP StatusDescription
rate_limit:exceeded429Too many requests

Turnstile (Bot Protection)

CodeHTTP StatusDescription
turnstile:token_missing400Turnstile token not provided
turnstile:verification_failed403Turnstile verification failed
turnstile:service_error503Turnstile service unavailable
CodeHTTP StatusDescription
meilisearch:query_failed500Search query failed

EventStream

CodeHTTP StatusDescription
eventstream:publish_failed503Event publish failed

Worker / System

CodeHTTP StatusDescription
worker:connection_failed503Worker service connection failed
worker:response_invalid502Worker returned invalid response
worker:verification_email_send_failed502Verification email failed to send
worker:password_reset_email_send_failed502Password reset email failed to send
system:internal_error400Internal server error
system:hashing_error500Password hashing failed
system:not_found404Resource not found
system:transaction_error500Database transaction failed
system:database_error500Database error
system:token_creation_error500Token creation failed

Released under the MIT License.