Перейти к основному содержанию
Справочник ошибок API панели. Все эндпоинты живут под /api/v1 и, за исключением публичных и setup-эндпоинтов, требуют авторизованной сессии администратора.
Для кого: администратор, SRE, разработчик интеграций. Требуемые права: зависят от эндпоинта.
Полный машинный каталог кодов ошибок в продукте пока не опубликован. Эта таблица описывает наблюдаемое поведение API: какие HTTP-статусы возвращаются, в каких ситуациях и что делать оператору. По мере стабилизации каталога страница будет расширяться.

HTTP-статусы

СтатусТиповая причинаДействие оператора
400Некорректный запрос: невалидный JSON, отсутствующие обязательные поля, неверные параметрыПроверьте тело и параметры запроса по документации соответствующего эндпоинта
401Нет сессии или сессия просрочена: отсутствует/невалиден заголовок Authorization: Bearer <session-token>Выполните вход заново (POST /api/v1/auth/login) и повторите запрос с новым токеном
403Недостаточно прав или лицензионное ограничение: в деградированном режиме лицензии все изменяющие запросы отклоняются с сообщением о режиме «только чтение»; отдельные функции могут быть заблокированы планом лицензииПроверьте статус лицензии (axottle license status или GET /api/v1/license/status). В деградированном режиме доступны поверхности восстановления: активация лицензии, самообновление панели, обновление агентов, аутентификация
404Ресурс не найден: несуществующий идентификатор, удалённый объект или неверный публичный токен в публичных ссылкахПроверьте идентификатор/токен в URL; для публичных ссылок — актуальность ссылки
409Конфликт состояния: операция несовместима с текущим состоянием системыДождитесь завершения конкурирующей операции или устраните конфликт (примеры ниже)
422Ошибка валидации: данные синтаксически корректны, но не проходят бизнес-проверкиИсправьте значения полей согласно сообщению об ошибке
5xxВнутренняя ошибка панели или зависимого сервисаСмотрите логи: axottle logs backend --tail 200, затем axottle doctor; при повторении соберите support-бандл

Примеры конфликтов 409

  • Бэкап уже выполняется — по каждому профилю одновременно идёт не более одного запуска; повторный POST /api/v1/backups/runs для того же профиля вернёт 409. Дождитесь завершения текущего запуска.
  • Автопривязка Remnawave отключенаPOST /api/v1/setup/remnawave/bootstrap возвращает 409, если переменная AXOTTLE_RW_BOOTSTRAP не включена.
  • Вторая сессия Telegram-помощника — helper-сессия для настройки уведомлений одиночная; параллельная попытка открыть вторую получает 409.

Особые случаи

Тест Telegram-уведомлений

POST /api/v1/notifications/telegram/test — единственный эндпоинт уведомлений, который возвращает реальную ошибку доставки:
СтатусЗначениеДействие
400Уведомления не настроены (нет токена бота или chat id)Заполните настройки Telegram в панели
502Ошибка Telegram Bot APIПроверьте корректность токена бота и права бота в чате
504Таймаут обращения к TelegramПроверьте исходящую сетевую доступность с сервера панели
В остальных случаях доставка уведомлений — best-effort: сбой отправки не ломает вызвавшую его операцию, ошибка фиксируется в audit-журнале.

Деградированный режим лицензии

Если лицензия отсутствует, просрочена и не в grace-периоде, панель работает в режиме «только чтение»: GET-запросы проходят, изменяющие запросы получают 403. Это не сбой, а штатная защита — восстановите лицензию, и запись снова заработает. Подробнее: Лицензия.

Диагностика по шагам

1

Определите класс ошибки

4xx — проблема запроса, прав или состояния; 5xx — проблема на стороне панели.
2

Для 401/403 проверьте сессию и лицензию

curl -s https://panel.example.com/api/v1/license/status \
  -H "Authorization: Bearer <session-token>"
3

Для 5xx смотрите логи и Doctor

axottle logs backend --tail 200
axottle doctor

Связанные страницы

CLI axottle

Команды logs, doctor, license status.

Лицензия

Grace-период и деградированный режим.
Проверено для версии Axottle текущей ветки. Дата проверки: 2026-07-11.