Диагностика · Доступность

Что на самом деле означает 529 Overloaded

Это значит, что у провайдера сейчас не хватает мощности, а не что ваш запрос неверен. Правка кода не поможет — поможет правка стратегии повторов.

#Claude API#529#Overloaded#Стратегия повторов

Четыре тезиса

529

Перегрузка провайдера

Возвращается, когда на стороне сервера не хватает мощности. Не связано с квотой ключа, параметрами или телом запроса.

429

Вас ограничивают по скорости

Вот это означает, что вы превысили собственную скорость или квоту. 529 и 429 требуют разной обработки — не кладите их в одну ветку.

Бэкофф

Единственный рабочий приём на клиенте

Экспоненциальный бэкофф с джиттером. Немедленный повтор усугубляет перегрузку и быстрее приводит к лимиту.

Многомаршрутность

Структурное смягчение

Если ту же работу можно отправить другому провайдеру, перегрузка одного перестаёт означать простой. Цена — принять различия моделей.

Чем 529 отличается от 429 и 503

529 означает, что сервер перегружен именно сейчас: это проблема мощности, обычно временная. 429 означает, что вы упёрлись в собственный потолок по скорости или квоте — проблема лимитов. 503 обычно означает недоступность сервиса или обслуживание. Ни один из кодов не говорит, что запрос составлен неверно, но обработка разная: 529 — отступить и повторить, 429 — снизить темп или поднять лимиты, 503 — подождать и следить за страницей статуса. Свести все три в один catch — самая частая ошибка.

Почему обсуждение периодически растёт

Каждый раз при выходе новой модели или массовой миграции мощности провайдеров временно уплотняются, и разговоров про 529 становится больше. Такие волны обычно спадают по мере расширения мощностей — но тому, у кого горит срок, «дождаться расширения» не годится в качестве ответа.

Порядок диагностики

Шаг 1

Убедитесь, что код действительно 529, а не 429. Тела ответов различаются — считайте их в логах раздельно.

Шаг 2

Проверьте страницу статуса провайдера. Если это масштабный инцидент, любые правки на клиенте — только смягчение.

Шаг 3

Проверьте, не усиливает ли ваша логика повторов перегрузку: отсутствие джиттера, отсутствие потолка и мгновенный повтор — всё это усиление.

Прежде чем повторять, разберитесь, какой это код

Что подтверждено

529 сигнализирует о перегрузке мощностей провайдера и не связан с содержимым запроса — эта семантика зафиксирована в документации поставщиков. Экспоненциальный бэкофф с джиттером — широко проверенный приём на стороне клиента.

Не считать фактом

Утверждение «529 — это способ тихо придушить активных пользователей» не имеет подтверждений и здесь не заявляется. Различие между 529 и 429 описано в публичной документации, а их смешение ведёт к выбору неверного решения.

Два подхода

Только бэкофф на клиенте

Дёшево внедряется и заметно снижает долю отказов. Но пока провайдер перегружен, остаётся только ждать.

Дать работе уходить к разным провайдерам

Перегрузка одного перестаёт означать простой. Цена — принять различия в повадках моделей, и у каждого маршрута свои режимы отказа.

Как правильно писать повторы

Три пункта. Первый: экспоненциальный бэкофф, а не фиксированный интервал — сначала секунда, дальше удвоение. Второй: добавьте случайный джиттер. Если все клиенты ждут одинаково, повторы приходят синхронной волной, и перегрузка только затягивается. Третий: поставьте потолки на число повторов и на суммарное ожидание, иначе одна перегрузка заставит очередь задач расти без предела. Отдельно: если потоковый запрос оборвался посередине, не повторяйте его вслепую с начала — сначала проверьте, можно ли продолжить с уже полученного.

Что QCode может и чего не может

Может: одним ключом переключиться на другое семейство моделей во время перегрузки, не дожидаясь восстановления единственного провайдера. Не может: мы не поставщик и не меняем его мощности. И скажем прямо — у нас тоже бывают неудачные запросы. За последние 7 дней наблюдаемый на нашей стороне режим отказа — преимущественно 502 на шлюзе, при 0 случаев 529. Сервис, который продаёт себя как безотказный, обычно просто не публикует свои данные об отказах. Мы предлагаем несколько маршрутов и проверяемые записи об отказах, а не безотказность.

Частые вопросы

Нужно ли менять параметры запроса при 529?

Нет. 529 не связан с содержимым запроса: ни изменение max_tokens, ни правка параметров модели, ни сокращение промпта его не уберут. Менять нужно стратегию повторов.

Можно ли обрабатывать 529 и 429 одинаково?

Не рекомендуется. При 529 следует отступить и повторить тот же запрос; 429 означает, что нужно снизить темп отправки или поднять лимиты, а слепые повторы будут снова и снова упираться в ограничитель.

Сколько ждать?

Обычная схема: первая пауза в секунду, дальше удвоение, плюс случайный джиттер и потолки на число повторов и общее ожидание. Конкретные значения зависят от того, какую задержку терпит ваша задача.

Что делать, если 529 пришёл посреди потокового ответа?

Сначала проверьте, годится ли уже полученное. Если можно продолжить — продолжайте; повторяйте целиком только если нельзя. Слепой перезапуск удваивает оплату и добавляет нагрузки.

Бывает ли 529 у QCode?

Перегрузка провайдеров реальна, и мы от неё не защищены. По нашим наблюдениям за последние 7 дней отказы были преимущественно 502, случаев 529 — 0. Мы можем дать возможность увести ту же работу в другое семейство моделей, но не обещать безотказность.

Многомаршрутность убирает единую точку отказа?

Нет. Она снижает вероятность того, что один сбой остановит работу, но у каждого маршрута свои режимы отказа, да и сам слой маршрутизации может отказать. Это смягчение, а не устранение.

Источники

Семантика кодов состояния соответствует официальной API-документации поставщиков. Мы намеренно не приводим сторонние проценты доступности: такие цифры меняются со временем, а авторитетного независимого измерения, на которое можно сослаться, у нас нет.

Один маршрут перегружен — есть другой

Один ключ на семь семейств моделей: когда маршрут под нагрузкой, переключитесь и продолжайте.

Читайте также

Семантика кодов состояния соответствует официальной документации поставщиков и может меняться между версиями. Приведённые наблюдения по нашим отказам относятся к конкретному окну наших логов и не являются обязательством по доступности.