Exception handling

Learn more about error codes in the official doc.

The plugin may raise the following exceptions:

  • lokalise.errors.ClientError - generic error.

  • lokalise.errors.BadRequest (400) - the provided request is incorrect, often due to missing a required parameter.

  • lokalise.errors.Unauthorized (401) - API token is incorrect.

  • lokalise.errors.Forbidden (403) - authenticated user does not have sufficient rights to perform the desired action.

  • lokalise.errors.NotFound (404) - the provided endpoint (resource) cannot be found.

  • lokalise.errors.MethodNowAllowed (405) - HTTP request with the provided verb is not supported by the endpoint.

  • lokalise.errors.NotAcceptable (406) - posted resource is malformed.

  • lokalise.errors.Conflict (409) - request conflicts with another request.

  • lokalise.errors.Locked (423) - your token is used simultaneously in multiple requests.

  • lokalise.errors.TooManyRequests (429) - too many requests hit the API too quickly (check the section below to learn more).

  • lokalise.errors.ServerError (500).

  • lokalise.errors.BadGateway (502).

  • lokalise.errors.ServiceUnavailable (503).

  • lokalise.errors.GatewayTimeout (504).

To handle an exception you would do the following:

try:
    client.project('invalid_id')
except lokalise.errors.NotFound as err:
    print(err.message)
    print(err.code)

Rate limits

Access to all endpoints is limited to 6 requests per second from 14 September, 2021. This limit is applied per API token and per IP address. If you exceed the limit, a 429 HTTP status code will be returned and the corresponding exception will be raised that you should handle properly. To handle such errors, we recommend an exponential backoff mechanism with a limited number of retries.