Skip to content

Ошибки и обработка результата ​

Network использует status: error и error: {name, message}. SSO legacy использует error_name, error_msg и иногда error_code. AntiCheat SecureChannel сначала требует расшифровки ответа; plain middleware errors могут прийти раньше. HTTP-код не заменяет проверку application status.

Имя/группаЧто проверить
incorrect_dataОбязательные поля, расположение body/query, формат и границы ID
method_not_foundСервис, регистр имени Network, зарегистрированные методы, SSO route coverage
token_invalid, token_no_passedПравильный тип credentials и штатное обновление входа
access_deniedАккаунт, роль, владелец/доступ к серверу и условия метода
license_upgrade_required, checker_addon_requiredСерверная feature matrix и состояние подписки
dedicated_project_mismatchСоответствие проекту конкретного контура
ozprotect_network_host_mismatchНазначенный Network host выбранного сервера
another_project, server_not_belong_projectСвязь проекта и сервера, а не только существование обоих ID
no_dataОбъект не найден или не виден в текущей области доступа
checker_session_not_found/taken/closed/refusedКод и состояние сессии, привязка устройства, завершение/отказ
checker_too_many_sessions, checker_rate_limitedАктивные сессии и ограничение частоты; не запускайте бесконечные повторы
AC missing_headers, request_expired, session_expired, replay_detectedSecureChannel headers, время, сессия и новый nonce в штатном клиенте
database_error, api_exceptionДиагностика backend без вывода stack trace/SQL/credentials пользователю

Перечень не является единственным набором ошибок: у категорий есть дополнительные словари и динамические ошибки модулей. OpenAPI хранит наблюдаемые имена в x-observed-errors, но этот список не исчерпывает все runtime-ветки.

Как показывать пользователю ​

Сначала перевод errors.<name>, затем безопасное сообщение backend и общий перевод неизвестной ошибки. Для SSO сначала нормализуйте error_name/error_msg, для сокета смотрите error.name/error.message. Не показывайте raw объект с токенами или внутренним SQL.

Повтор запроса ​

Read-запрос можно повторить после восстановления соединения, если он не меняет состояние. Для наказания, оплаты, отправки сообщения и upload потерянный ACK оставляет результат неопределённым. Сначала проверьте созданный объект/историю; используйте предусмотренную идемпотентность. Не считайте timeout автоматическим rollback.

Источники: Network common/ApiController.js, common/ApiErrors.json, common/SocketController.js; SSO src/legacy/response.js; AC common/SecureChannel.js.

Разработано с ❤️ от ozLiginus