Ошибки и идемпотентность
Стандартные ошибки, повторы, лимиты и защита от дублей.
Ошибки используют application/problem+json, реальный HTTP-статус и request_id.
Создание требует Idempotency-Key длиной 8–128. Хранятся только HMAC и отпечаток запроса. Тот же Key/тело возвращает исходную задачу; другое тело — 409 idempotency_conflict; активный запрос — 409 request_in_progress. Не создавайте новый Key при автоматическом повторе.
Частые коды: invalid_api_key, invalid_api_key_rate_limited, api_key_expired, insufficient_scope, validation_error, unsupported_model, unsupported_parameter, input_url_not_allowed, insufficient_credits, payment_required, account_suspended, network_not_allowed, rate_limit_exceeded, concurrency_limit_exceeded, provider_unavailable, service_unavailable.
Повторные неверные данные с одного IP тоже ограничиваются; хранится только защищённый Pepper HMAC отпечаток IP.
Сетевые ошибки, 429, 503 повторяйте с backoff, тем же телом и Key. Если результат Provider не подтверждён, API запрещает слепую повторную отправку.
Перед повтором всегда соблюдайте header Retry-After.