Ошибки и повторные попытки (retries)
StableКак выглядят ошибки Control Plane и какие retry-паттерны безопасны для автоматизации.
Обновлено: 5 марта 2026 г.
Control Plane возвращает предсказуемые ошибки в JSON‑формате:
{
"error": "...",
"message": "...",
"details": { ... }
}
Частые коды ответа
400 BadRequest— неверный payload, отсутствует обязательное поле, ошибка имени или формата;401 Unauthorized— токен отсутствует, просрочен или неверен;403 Forbidden— scope или permissions не позволяют выполнить операцию;404 NotFound— ресурс не найден или скрыт политикой доступа;409 Conflict/LimitExceeded— конфликт состояния или превышение лимита;5xx— внутренняя ошибка платформы или сбой при работе с внутренними сервисами.
Отдельно полезно знать про OperationDisabled: такой ответ вы получите, если попытаетесь использовать публичный ручной start/stop/scale или передать start_immediately / initial_scale там, где текущий managed‑сценарий этого не допускает.
Как безопасно делать retries
Можно повторять
GET‑запросы;- временные сетевые ошибки;
- часть
5xx, если операция не дошла до сервера или не изменила состояние.
Нельзя слепо повторять
- destructive‑операции без проверки текущего состояния;
POST create, если вы не убедились, что ресурс действительно не был создан с первого раза.
Хороший retry-паттерн
- Выполнить write‑операцию.
- Если ответ не пришёл или соединение оборвалось, сначала сделать
GET/list. - Убедиться, что ресурс отсутствует или находится в ожидаемом состоянии.
- Только после этого повторять write.
Учитывайте асинхронность
Создание и удаление ресурсов могут быть асинхронными. Поэтому после успешного ответа объект ещё не обязан мгновенно оказаться в финальном состоянии. Корректный сценарий — не паниковать, а читать состояние ресурса через GET.
