Skip to content

Error Handling

Exception Hierarchy

FasiriError
├── AuthenticationError     # 401 - invalid or missing API key
├── RateLimitError          # 429 - too many requests
├── UnsupportedLanguageError # 422 - language pair not supported
└── ProviderError           # 503 - all providers failed

Handling Errors

from fasiri import (
    Fasiri,
    AuthenticationError,
    RateLimitError,
    UnsupportedLanguageError,
    ProviderError,
    FasiriError,
)

client = Fasiri(api_key="fsri_...")

try:
    result = client.translate("Hello", target="lug")

except AuthenticationError as e:
    # Invalid, expired, or missing API key
    print(f"Auth failed: {e}")

except RateLimitError as e:
    # Rate limit exceeded - wait and retry
    import time
    time.sleep(e.retry_after)

except UnsupportedLanguageError as e:
    # Language pair not supported
    print(f"Not supported: {e}")

except ProviderError as e:
    # All providers failed - transient error
    print(f"Provider error: {e}")

except FasiriError as e:
    # Any other Fasiri error
    print(f"Error [{e.code}]: {e}")

HTTP Error Codes

Status Exception Meaning
401 AuthenticationError Invalid or missing API key
422 UnsupportedLanguageError Unsupported language or bad input
429 RateLimitError Rate limit exceeded
503 ProviderError All translation providers failed
500 ProviderError Internal server error