Skip to main content
The SDK creates one UUID idempotency key per decisions.create() invocation. Every automatic attempt reuses it and the original request snapshot. A separate method call creates a new operation unless you supply the retained key.
Default max_retries=2 means at most three HTTP attempts. Retryable service and network failures use backoff with jitter; Retry-After is honored within the remaining retry budget. Authentication, invalid input, conflict, and oversized upload failures are not retried. Explicit retryable: false is respected. 504 decision_pending means accepted work continues. When retries stop, retain the key and original audio, JSON, and content type to recover later. There is no job-status endpoint. Changing input with the same key raises IdempotencyConflictError. A timeout or cancellation does not prove rejection. All SDK exceptions derive from TazoError. HTTP exceptions expose status, code, request ID, idempotency key, retryability, and retry delay where available. ProtocolError reports an invalid server response. StreamingError exposes the server error code or an unexpected-disconnect code, plus a close code when known. Never put credentials, audio, or prompts into application error logs.