Skip to main content

Error Hierarchy

The Python SDK has a detailed error hierarchy with specific exception types for common HTTP status codes:

Retry Behavior

Automatic retries on 429 and 5xx with exponential backoff and jitter: Strategy: base_delay * 2^attempt * random(0.5, 1.5) (jitter prevents thundering herd) 429 responses: Respects the Retry-After header if present. Non-retryable: 4xx errors (except 429) fail immediately.

Recovery Patterns

Catching specific errors

Rate limit handling

The SDK retries 429 automatically. For custom handling after exhaustion:

Idempotent retries

A key starting with match- is reserved for keys KeyStone derives and raises a validation error rather than creating. The default generator’s keys are outside that prefix. A prefix you pass becomes the start of the key ({prefix}-{uuid4}), and any key starting with match- is refused: a prefix of match yields match-{uuid4} and is refused, while matcher yields matcher-{uuid4} and is not.