Документация › Справочники › Коды ошибок
Коды ошибок и состояния
Справочник кодов и состояний, которые встречаются в системе: почему бот не отвечает, какие ошибки отдаёт API, что значат состояния канала. Диагностика по шагам — в Бот не отвечает.
⏱ 7 мин · 👤 справочник · 🟢 live
Доступ к ответу бота (eligibility)
Почему бот может не отвечать (проверка перед ответом):
| Код | HTTP | Значение |
|---|---|---|
PROJECT_NOT_ACTIVE | 403 | проект в черновике |
ACCOUNT_BANNED | 403 | аккаунт заблокирован |
INSUFFICIENT_BALANCE | 402 | пустой баланс |
NO_SUBSCRIPTION | 402 | нет подписки |
SUBSCRIPTION_EXPIRED | 402 | подписка истекла |
WAZZUP_TRIAL_EXPIRED | 402 | пробный период WhatsApp кончился |
WAZZUP_TRIAL_CONVERSATIONS_EXHAUSTED | 402 | израсходованы 9 пробных диалогов |
PROJECT_NOT_FOUND | 404 | проект не найден |
→ Бот не отвечает — диагностика
Причины автопаузы ИИ (ai_off_reason)
Бот молчит в диалоге намеренно:
| Причина | Значение |
|---|---|
operator_joined_chat | оператор начал писать в идущий AI-диалог |
chat_started_by_operator | диалог начат вручную (оператор написал первым) |
operator_manual_off | оператор вручную выключил ИИ в диалоге |
client_stop | клиент попросил остановить (stop_dialog) |
pipeline_stage_done | диалог дошёл до финальной стадии воронки |
pre_existing_dialog | переписка старше подключения бота (исторический чат) |
backlog_offline | сообщение пришло в момент переподключения |
guards_violation | сработала защита от спама |
default_chat_inactive | настройка «новые чаты с выключенным ИИ» (default_chat_active = false) |
conversation_cleared | история диалога очищена оператором |
Состояния канала (WhatsApp)
| Состояние | Тип | Значение |
|---|---|---|
active | — | в эфире |
idle / init | мягкое | спит / поднимается — пройдёт само |
qridle | жёсткое | сессия слетела → пере-скан QR |
blocked | жёсткое | бан WhatsApp |
disabled | жёсткое | канал отключён |
no_channel | — | канал не привязан |
→ Канал отвалился / WhatsApp забанили
Ошибки API
Единый формат ответа: { "error": "текст", "code": "КОД" }.
| HTTP | code | Когда |
|---|---|---|
| 400 | INVALID_INPUT / INVALID_UUID | неверные/неполные данные |
| 401 | UNAUTHORIZED | нет/невалидны учётные данные |
| 403 | FORBIDDEN | нет прав (роль) |
| 404 | NOT_FOUND | объект не найден |
| 409 | CONFLICT | конфликт (напр. параллельное изменение) |
| 429 | RATE_LIMITED | превышен лимит (см. Retry-After) |
| 500 | SYSTEM_ERROR | внутренняя ошибка |
Ошибки функций
Когда функция падает, она возвращает модели { error, error_code }, и бот реагирует:
Пример error_code | Значение |
|---|---|
missing_params | не хватает обязательного параметра |
invalid_params | значение вне допустимого |
sub_merchant_not_connected | приём оплаты не настроен |
kaspi_auth_lost | потеряна авторизация Kaspi |
apipay_4xx / apipay_5xx | ошибка платёжного сервиса |
→ Функция не вызывается / падает
💬 Простыми словами
Это «расшифровщик» — справочник всех технических кодов, которые могут попасться. Бот молчит и где-то мелькнул WAZZUP_TRIAL_EXPIRED? Значит, кончился пробный период. Видишь у канала qridle? Слетела сессия, надо пере-сканировать QR. Прилетел от API FORBIDDEN? Не хватает прав по роли. Тут не нужно ничего настраивать — просто находишь свой код и понимаешь, что он значит и куда дальше смотреть.
Дальше: → Стадии, статусы, типы
Связано: Бот не отвечает · Канал отвалился · Формат данных