Ошибки API
API возвращает стандартный GraphQL-ответ: поле data при успешном выполнении и массив errors, если запрос не может быть выполнен полностью.
Формат ошибки
Плохой запрос
POST /graphql
POST /graphql HTTP/1.1
Accept-Language: ru
Content-Type: application/json
X-Project-Context: <project-context-token>
X-Request-Id: optional-request-id
{
"documentId": "me",
"variables": {}
}
Ответ API
401 Unauthorized
{
"errors": [
{
"message": "Authentication required",
"extensions": {
"category": "authentication"
}
}
],
"data": null
}
Типовые категории
| Категория | Причина | Что проверить |
|---|---|---|
authentication | Нет сессии или сессия истекла | Authorization, повторный login |
validation | Неверные переменные операции | Названия и типы полей в variables |
authorization | Недостаточно прав | Статус пользователя, PIN, доступ к серверу |
not_found | Сущность не найдена | ID проекта, сервера, товара, аккаунта |
internal | Ошибка платформы | Повторить запрос позже или обратиться в поддержку |
Частые причины
documentIdнаписан с ошибкой или не существует в справочнике.- Не передан, повреждён или устарел
X-Project-Context. - Для операции нужен
Authorization: Bearer <sessionId>, но пользователь не авторизован. variables.gameServerIdотсутствует, имеет неверный формат или указывает на сервер другого проекта.- Явный
variables.gameServerIdне принадлежит текущему проекту.
Рекомендации
PROJECT_UNAVAILABLE означает, что проект временно недоступен. Покажите уведомление вместо повторной отправки действия. Проверить доступность позже можно запросом projectAvailable.
Логируйте documentId, HTTP status, errors[].message и errors[].extensions.category. Не логируйте пароли, PIN-коды, токены, секретные ключи и персональные данные без маскирования.