Skip to content

Коды ошибок

Каждая ошибка в боте, кабинете и воркере получает код вида E5103-1a2b3c4d:

  • 5103 — номер класса проблемы из таблиц ниже: по нему сразу видно, что за ошибка, ещё до чтения трейса;
  • 1a2b3c4d — отпечаток конкретного бага (стабилен между повторениями): по нему находится точный трейс на дашборде телеметрии.

Юзер видит код в сообщении «Что-то пошло не так», владелец — в JSON-ответах API (error_id) и на дашборде приёма ошибок. Повторения одного бага дают один и тот же код целиком.

Как этим пользоваться

Юзер прислал код → первая половина говорит, куда смотреть (касса? панель? БД?), вторая находит трейс на дашборде. Коды из «штатных» строк (например E3003 — не хватило баланса) в телеметрию не шлются — юзер просто видит понятное сообщение.

Система (1xxx)

КодОшибкаЧто случилосьЧто делать
E1001Ошибка конфигурацииКонфигурация неверна или небезопасна и отклонена при старте (плейсхолдер вместо секрета, неверный формат ключа и т.п.).Проверьте .env по .env.example: длины ключей, отсутствие change_me, раздельные CRYPT/JWT ключи.
E1101Ошибка валидации данныхВходные данные не прошли схему (pydantic) там, где это не было перехвачено.Код места сбоя в трейсе; чаще всего это неожиданный ответ внешнего API.
E1201Ошибка базы данныхPostgreSQL недоступен, соединение оборвано или запрос нарушил ограничение схемы.Проверьте контейнер postgres, место на диске и миграции (alembic upgrade head).
E1301Ошибка RedisRedis недоступен или соединение оборвано (кэш, локи, очередь задач).Проверьте контейнер redis; воркер и шедулер зависят от него.
E1401Сетевая ошибка исходящего запросаHTTP-запрос к внешнему сервису (касса, панель, Telegram) не прошёл: DNS, соединение, TLS.Проверьте сеть/файрвол сервера и доступность адресата; единичные случаи не страшны — критичные пути ретраятся.
E1402ТаймаутОперация не уложилась в отведённое время (внешний API или внутренняя задача).Если массово — смотрите нагрузку сервера и время ответа внешнего сервиса.

Доступ и данные (2xxx)

КодОшибкаЧто случилосьЧто делать
E2001Доступ запрещёнДействие потребовало роль/право, которых у актора нет.Если это админ-операция — проверьте роль пользователя в кабинете.
E2002Не найденоЗапрошенная сущность не существует (тариф, транзакция, юзер, промокод).Обычно устаревшая кнопка/ссылка; если массово после обновления — issue.

Подписки и покупки (3xxx)

КодОшибкаЧто случилосьЧто делать
E3001Ошибка покупкиПокупку невозможно завершить: недоступный тариф, конфликт состояния подписки.Проверьте, что тариф активен и панель доступна; смотрите контекст на дашборде.
E3002Триал недоступенЮзер не проходит условия пробного периода (уже брал, есть подписка).Штатная ситуация; код в телеметрию не шлётся, юзер видит объяснение.
E3003Недостаточно средствБаланса не хватает на операцию, оплачиваемую с кошелька.Штатная ситуация; юзеру предлагается пополнение.

Платежи (4xxx)

КодОшибкаЧто случилосьЧто делать
E4001Ошибка платежаПлатёжная операция не выполнена: касса вернула ошибку или неожиданный ответ.Проверьте ключи кассы и её статус-страницу; смотрите message в трейсе.
E4002Касса не настроенаЗапрошен платёжный провайдер без активной конфигурации в БД.Включите провайдера в кабинете (Платежи) или проверьте seed-роу.
E4003Вебхук не прошёл проверкуПодпись/секрет/IP входящего платёжного вебхука не сошлись (ответ 403).Единичные — фон интернета; массовые с одной кассы — проверьте секреты в кабинете и настройки уведомлений у кассы.
E4004Недопустимый переход статусаПопытка сменить статус транзакции, невозможная из текущего состояния (обычно дубль или сильно опоздавший вебхук).Безопасно: идемпотентность отработала. Массово — смотрите, не шлёт ли касса дубли.

Панель Remnawave (5xxx)

КодОшибкаЧто случилосьЧто делать
E5001Ошибка панели RemnawaveПанель вернула ошибку, не подпадающую под более точные коды 5xxx.Смотрите message: чаще всего это неожиданный ответ API панели.
E5002Панель отклонила авторизациюТокен панели неверен или отозван; запрос не ретраится.Обновите REMNAWAVE__TOKEN в .env или ключ в кабинете панели.
E5003Панель временно недоступнаТаймаут/5xx/обрыв соединения с панелью; операция ретраится с бэкоффом, при длительном простое watchdog включит техрежим.Проверьте панель и сеть до неё; после восстановления очередь дошлёт изменения.
E5004Версия панели не поддерживаетсяПанель старше минимально поддерживаемой (2.8.0).Обновите Remnawave.

Telegram Bot API (6xxx)

КодОшибкаЧто случилосьЧто делать
E6001Ошибка Telegram Bot APIПрочие ошибки Bot API (сетевые сбои Telegram, недоступность серверов).Единичные — норма; массовые — проверьте состояние Telegram и сеть сервера.
E6002Флуд-лимит TelegramTelegram попросил замедлиться (429): слишком много сообщений в секунду.Рассылки уже дозируются; если код массовый — снизьте скорость рассылки.
E6003Бот заблокирован юзеромСообщение не доставлено: юзер заблокировал бота или удалил чат.Штатно для рассылок; такие юзеры попадают в статистику ошибок доставки.
E6004Некорректный запрос к TelegramBot API отверг запрос: битая разметка, слишком длинный текст, несуществующий message_id.Смотрите message в трейсе — обычно это конкретное поле конкретного экрана.

Неклассифицированное (9xxx)

КодОшибкаЧто случилосьЧто делать
E9001Неизвестная ошибкаНеобработанное исключение, не подпадающее ни под один известный класс.Смотрите трейс на дашборде телеметрии по полному коду ошибки; если повторяется — заведите issue с этим кодом.

MIT License · сделано для тех, кто продаёт VPN, а не настраивает ботов