Skip to content

core.enums.error_code

src.core.enums.error_code

Domain-level error codes (machine-readable).

Error codes follow ENTITY_ACTION_REASON naming convention. Used with Result types for railway-oriented programming.

Categories: - Validation errors (INVALID_, VALIDATION_) - Resource errors (_NOT_FOUND) - Conflict errors (ALREADY_EXISTS, CONFLICT) - Authentication errors (INVALID_CREDENTIALS, TOKEN) - Authorization errors (PERMISSION, ACCOUNT_LOCKED) - Business rule violations (INSUFFICIENT_, LIMIT_EXCEEDED) - Secrets management errors (SECRET)

Classes

ErrorCode

Bases: Enum

Domain-level error codes (machine-readable).

Error codes follow ENTITY_ACTION_REASON naming convention.

Source code in src/core/enums/error_code.py
class ErrorCode(Enum):
    """Domain-level error codes (machine-readable).

    Error codes follow ENTITY_ACTION_REASON naming convention.
    """

    # Validation errors
    INVALID_EMAIL = "invalid_email"
    INVALID_PASSWORD = "invalid_password"
    PASSWORD_TOO_WEAK = "password_too_weak"
    INVALID_PHONE_NUMBER = "invalid_phone_number"
    INVALID_DATE_RANGE = "invalid_date_range"
    VALIDATION_FAILED = "validation_failed"

    # Resource errors
    USER_NOT_FOUND = "user_not_found"
    ACCOUNT_NOT_FOUND = "account_not_found"
    TRANSACTION_NOT_FOUND = "transaction_not_found"
    PROVIDER_NOT_FOUND = "provider_not_found"
    RESOURCE_NOT_FOUND = "resource_not_found"

    # Conflict errors
    USER_ALREADY_EXISTS = "user_already_exists"
    EMAIL_ALREADY_EXISTS = "email_already_exists"
    ACCOUNT_ALREADY_LINKED = "account_already_linked"
    RESOURCE_CONFLICT = "resource_conflict"

    # Authentication errors
    INVALID_CREDENTIALS = "invalid_credentials"
    TOKEN_EXPIRED = "token_expired"
    TOKEN_INVALID = "token_invalid"
    EMAIL_NOT_VERIFIED = "email_not_verified"
    AUTHENTICATION_FAILED = "authentication_failed"

    # Authorization errors
    PERMISSION_DENIED = "permission_denied"
    RESOURCE_NOT_OWNED = "resource_not_owned"
    ACCOUNT_LOCKED = "account_locked"
    AUTHORIZATION_FAILED = "authorization_failed"

    # Business rule violations
    INSUFFICIENT_BALANCE = "insufficient_balance"
    TRANSFER_LIMIT_EXCEEDED = "transfer_limit_exceeded"
    INVALID_TRANSACTION_TYPE = "invalid_transaction_type"

    # Secrets management errors
    SECRET_NOT_FOUND = "secret_not_found"
    SECRET_ACCESS_DENIED = "secret_access_denied"
    SECRET_INVALID_JSON = "secret_invalid_json"

    # Audit trail errors
    AUDIT_RECORD_FAILED = "audit_record_failed"
    AUDIT_QUERY_FAILED = "audit_query_failed"

    # Rate limit errors
    RATE_LIMIT_CHECK_FAILED = "rate_limit_check_failed"
    RATE_LIMIT_RESET_FAILED = "rate_limit_reset_failed"

    # Encryption errors
    ENCRYPTION_KEY_INVALID = "encryption_key_invalid"
    ENCRYPTION_FAILED = "encryption_failed"
    DECRYPTION_FAILED = "decryption_failed"
    INVALID_INPUT = "invalid_input"

    # Provider errors
    PROVIDER_AUTHENTICATION_FAILED = "provider_authentication_failed"
    PROVIDER_UNAVAILABLE = "provider_unavailable"
    PROVIDER_RATE_LIMITED = "provider_rate_limited"
    PROVIDER_CREDENTIAL_INVALID = "provider_credential_invalid"