# Ошибки и безопасные повторы

Обычная HTTP-ошибка содержит error.code, error.message и идентификатор корреляции запроса. Сообщение не раскрывает внутренние маршруты, внутренний ID поставщика или секреты. В MCP результат ошибки инструмента помечен isError=true.

| Ситуация | Действие |
|---|---|
| validation_error / unsupported_parameter | Исправьте форму до новой отправки |
| unauthorized / insufficient_scope | Проверьте ключ и необходимые права |
| api_key_daily_budget_exceeded | Проверьте дневной бюджет и резервы |
| insufficient_balance | Проверьте доступный баланс |
| quote_exceeds_limit | Получите новую цену и явно задайте допустимый предел |
| idempotency_conflict | Не меняйте тело уже принятого запроса; используйте исходные данные |
| model_unavailable | Проверьте доступность операции; запрос мог быть отклонён до отправки |
| cancellation_not_safe | Отмена после отправки запрещена; дождитесь сверки |
| file_not_ready / file_scanning | Дождитесь проверки файла |
| file_expired | Срок хранения истёк |

При разрыве соединения результат не известен. Повторяйте тот же endpoint с прежним ключом credential, Idempotency-Key и телом. Сохранённый результат возвращается без второй отправки и списания. Не включайте слепой SDK retry со случайным новым Idempotency-Key.

HTTP 202 для медиа означает принятое задание. Для текстового пути он может означать незавершённую обработку; billing и сохранённый запрос остаются источником состояния. Проверьте историю и не выдавайте этот ответ за окончательный текст модели.
