Ошибки и повторные попытки

Не повторяйте запрос при любой ошибке. Исправьте ошибки 400, 401, 403 и 404, прежде чем отправлять запрос снова. Повторяйте запросы после тайм-аутов, ответов 429 и временных ошибок 5xx лишь ограниченное число раз, используя экспоненциальную задержку со случайным разбросом.

СостояниеПервое действие
400Проверьте поля, протокол и возможности модели
401Проверьте ключ API и заголовок аутентификации
403Проверьте ограничения ключа, модели, группы и IP-адреса
404Проверьте итоговый URL, эндпоинт и идентификатор модели
429Проверьте квоту и параллелизм, затем увеличьте задержку
5xxПовторите запрос ограниченное число раз

GetRouter не гарантирует наличие Retry-After в каждом ответе 429. Если заголовок присутствует, соблюдайте указанную задержку; иначе используйте ограниченную экспоненциальную задержку. Защищайте вызовы инструментов, задачи обработки медиаданных и другие операции с побочными эффектами от повторного выполнения.

Записывайте в журнал временную метку, состояние, эндпоинт, идентификатор модели, идентификатор запроса и номер повторной попытки. Никогда не записывайте полный ключ API.