Ошибки
HTTP-ошибки возвращают JSON с полем code. Повторяйте только то, что помечено retryable.
Ошибки HTTP
| Код | HTTP | Значение |
|---|---|---|
UNAUTHORIZED | 401 | API-ключ отсутствует, повреждён или отозван. |
INVALID_INPUT | 400 | Некорректное тело запроса. |
INSUFFICIENT_BALANCE | 402 | Недостаточно баланса, чтобы открыть поток. |
CONCURRENCY_LIMIT | 429 | Достигнут лимит аккаунта (все ключи делят его), глобальный потолок или доля регионального пула. Отдельного лимита на ключ нет. |
NOT_FOUND | 404 | У этого пользователя нет такой записи или потока. |
ADMISSION_DISABLED | 503 | Приём API на этом развёртывании выключен. |
REGION_UNAVAILABLE | 503 | В запрошенном регионе нет здорового узла. Если region не указан, недоступны все регионы. |
Коды закрытия WebSocket
Все коды закрытия, допускающие повтор, решаются одинаково: снова вызовите connect и откройте новый поток. Пути, сохраняющего поток при переподключении, не существует.
| Код | Значение | Что делать |
|---|---|---|
4001 | Токен недействителен или истёк | Снова вызовите connect и получите новый токен. |
4003 | sessionId не совпадает | Не повторяйте. Исправьте клиент. |
4004 | Сессия не на этом узле | Снова вызовите connect и получите новый адрес. |
4010 | Баланс исчерпан | Пополните счёт и снова вызовите connect. |
4011 | Достигнут лимит одновременных потоков | Подождите и снова вызовите connect. |
1003 | Ошибка протокола | Не повторяйте. Исправьте клиент. |
1012 | Шлюз перезапускается | Снова вызовите connect и получите новый адрес. |
4012 | Достигнута максимальная длительность (4 часа) | Снова вызовите connect и откройте новый поток. |
4013 | Таймаут простоя: 60 секунд без аудио. Ping его не сбрасывает. | Отправьте аудио или снова вызовите connect. |
4014 | Списание не подтверждено | Снова вызовите connect, когда счёт можно будет списать. |
4015 | API-ключ отозван | Создайте новый ключ и снова вызовите connect. |
4016 | Клиент читает слишком медленно | Снова вызовите connect и откройте новый поток. |
При завершении каждый поток округляется вверх до целых минут принятого аудио. Переподключение оплачивается отдельно. Без принятого аудио плата не взимается.