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.
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.