Справочник ошибок
Этот раздел отражает актуальные коды ошибок из серверного репозитория netrunner-server, пакета internal/apperrs.
Как читать ответы API
Сервер возвращает ошибки в JSON-ответе. Для диагностики важны:
code— машинный код ошибки, который удобно использовать в клиенте и логах;- HTTP-статус — тип ошибки на уровне API;
message— текст сообщения, который может зависеть от конкретного места вызова.
Важно: в текущем серверном коде есть коды с опечаткой
CRENENTIAL_*. В справочнике они сохранены без исправлений, потому что именно в таком виде сервер формирует ответ.
Аутентификация и пользователи
| Код | HTTP | Когда возникает |
|---|---|---|
ACCOUNT_ALREADY_EXISTS | 409 Conflict | Попытка создать учётную запись, которая уже существует. |
ACCOUNT_DELETE_FORBIDDEN | 409 Conflict | Запрещено удаление текущей или защищённой учётной записи. |
ACCOUNT_UPDATE_FORBIDDEN | 409 Conflict | Запрещено изменение текущей или защищённой учётной записи. |
INVALID_CREDENTIALS | 401 Unauthorized | Неверный логин или пароль при аутентификации. |
INVALID_TOKEN | 401 Unauthorized | Access token некорректен, повреждён или просрочен. |
INVALID_TOKEN_CLAIMS | 401 Unauthorized | Токен прошёл проверку формата, но содержит некорректные claims. |
UNAUTHORIZED | 401 Unauthorized | Запрос выполнен без корректной авторизации. |
REFRESH_TOKEN_NOT_FOUND | 404 Not Found | Refresh token не найден. |
USER_NOT_FOUND | 404 Not Found | Пользователь не найден. |
USER_EXISTS | 409 Conflict | Пользователь с такими данными уже существует. |
WEAK_PASSWORD | 400 Bad Request | Пароль не соответствует требованиям сложности. |
HASH_PASSWORD | 500 Internal Server Error | Ошибка хеширования пароля на сервере. |
INVALID_PASSWORD | 401 Unauthorized | Передан неверный пароль. |
LOGIN_REQUIRED | 400 Bad Request | Не заполнено обязательное поле логина. |
USERNAME_REQUIRED | 400 Bad Request | Не заполнено обязательное имя пользователя. |
ROLE_REQUIRED | 400 Bad Request | Не указана роль пользователя. |
PASSWORD_REQUIRED | 400 Bad Request | Не передан пароль. |
ADMIN_EXIST | 409 Conflict | Первый администратор уже создан, повторная инициализация запрещена. |
Типовые сообщения авторизации
Для части запросов авторизации использует код UNAUTHORIZED и возвращает одно из сообщений:
missing token— токен не был передан;token revoked— токен найден в blacklist;invalid token— токен не прошёл валидацию.
Валидация и общие проверки
| Код | HTTP | Когда возникает |
|---|---|---|
VALIDATION_ERROR | 400 Bad Request | Общая ошибка валидации входных данных. |
ROLE_INVALID | 400 Bad Request | Передана неподдерживаемая роль. |
Хосты, группы и учётные данные
| Код | HTTP | Когда возникает |
|---|---|---|
HOST_NOT_FOUND | 404 Not Found | Хост с указанным идентификатором не найден. |
HOST_INVALID_IP | 400 Bad Request | Передан некорректный IP-адрес. |
HOST_EMPTY_IP | 400 Bad Request | IP-адрес хоста не заполнен. |
HOST_ALREADY_EXISTS | 409 Conflict | Хост с таким IP или уникальными данными уже существует. |
GROUP_NOT_FOUND | 404 Not Found | Группа не найдена. |
GROUP_ALREADY_EXISTS | 409 Conflict | Группа с таким именем уже существует. |
CRENENTIAL_NOT_FOUND | 404 Not Found | Учётные данные не найдены. |
CRENENTIAL_ALREADY_EXISTS | 409 Conflict | Учётные данные с такими параметрами уже существуют. |
INVALID_CREDENTIAL | 401 Unauthorized | Переданы некорректные учётные данные. |
ROLE_NOT_FOUND | 404 Not Found | Роль не найдена. |
ROLE_ALREADY_EXISTS | 409 Conflict | Роль уже существует. |
Шаблоны, расписания и задачи
| Код | HTTP | Когда возникает |
|---|---|---|
TEMPLATE_NOT_FOUND | 404 Not Found | Шаблон не найден. |
TEMPLATE_ALREADY_EXISTS | 409 Conflict | Шаблон с таким именем или ключевыми параметрами уже существует. |
TEMPLATE_NO_SCHEDULE | 400 Bad Request | Для операции требуется расписание, но оно не задано. |
TEMPLATE_ALREADY_ENABLED | 409 Conflict | Шаблон уже включён или уже активен в расписании. |
TEMPLATE_TYPE_NOT_ALLOWED | 400 Bad Request | Передан неподдерживаемый тип шаблона или проверки. |
SCHEDULE_NOT_FOUND | 400 Bad Request | Расписание не найдено. |
SCHEDULED_TIME_EXPIRED | 400 Bad Request | Время запуска в расписании уже истекло. |
SCHEDULE_FAILED | 500 Internal Server Error | Сбой при постановке или выполнении расписания. |
TASK_NOT_FOUND | 404 Not Found | Задача не найдена. |
TASK_ALREADY_EXISTS | 409 Conflict | Задача с такими параметрами уже существует. |
Сканирование и сетевые операции
| Код | HTTP | Когда возникает |
|---|---|---|
PING_INVALID_TARGET | 400 Bad Request | Для ping передана некорректная цель. |
PING_RESOLVE_TIMEOUT | 504 Gateway Timeout | Истекло время разрешения имени или ожидания ответа при ping. |
PENTEST_NO_PORTS | 400 Bad Request | Для pentest-задачи не указаны порты. |
PENTEST_WRONG_RANGE_PORTS | 400 Bad Request | Передан некорректный диапазон портов. |
PENTEST_WRONG_PORT | 400 Bad Request | Один из портов задан в неверном формате или вне допустимого диапазона. |
PENTEST_NO_LIVE_HOSTS | 500 Internal Server Error | Во время выполнения не найдено доступных хостов для сканирования. |
PENTEST_REPORT_CREATE_FAILED | 500 Internal Server Error | Сервер не смог сформировать отчёт pentest-задачи. |
AGENT_IS_DOWN | 500 Internal Server Error | Агент недоступен или не отвечает. |
AGENT_SEND_FAILED | 500 Internal Server Error | Сервер не смог отправить команду агенту. |
AGENT_WRONG_DATA | 500 Internal Server Error | Агент вернул неожиданные или повреждённые данные. |
WHITE_BOX_NO_TRANSPORT | 400 Bad Request | Для WhiteBox-сценария не выбран или не поддерживается транспорт. |
JSON и служебные данные
| Код | HTTP | Когда возникает |
|---|---|---|
JSON_NOT_FOUND | 404 Not Found | Сервер не нашёл ожидаемый JSON-ресурс или конфигурацию. |
JSON_NO_TASK_TYPE | 400 Bad Request | В JSON не указан тип задачи. |
JSON_ERR_READING | 500 Internal Server Error | Ошибка чтения JSON на сервере. |
JSON_NO_OUT_TYPE | 500 Internal Server Error | В JSON отсутствует или не определён выходной тип данных. |