Ошибки, выявленные при проверке запроса, возвращаются в формате, совместимом с OpenAI SDK:
JSON
{
"error": {
"type": "permission_error",
"code": "module_not_allowed",
"message": "The token does not grant access to the module ACADEMIC.",
"request_id": "6f1c2a9e-4b7d-4e0a-9c55-2d8e1f3b7a10"
}
}Поля объекта error:
type— категория ошибки:authentication_error(401),permission_error(403),not_found_error(404),invalid_request_error(400, 405, 413),rate_limit_error(429),api_error(5xx);code— машиночитаемый код ошибки;message— описание ошибки на английском языке;request_id— идентификатор запроса, который указывается при обращении в университет.
9.1. Авторизация токеном API
Проверки выполняются в порядке, приведённом в таблице; ответ формируется по первой из нарушенных проверок.
| HTTP | КОД | ЗНАЧЕНИЕ | РЕКОМЕНДУЕМОЕ ДЕЙСТВИЕ |
|---|---|---|---|
| 429 | too_many_auth_failures | Запросы с IP-адреса временно отклоняются после 30 неудачных попыток авторизации в течение 10 минут. | Проверить значение токена и повторить запрос через 15 минут. |
| 503 | api_disabled | Приём запросов к API временно приостановлен. | Повторить запрос позднее. |
| 401 | invalid_api_key | Токен не передан, указан неверно или отозван. | Проверить заголовок авторизации; при отзыве токена обратиться за новым токеном. |
| 401 | token_expired | Срок действия токена истёк. | Обратиться в университет для выпуска нового токена. |
| 403 | token_blocked | Токен заблокирован администрацией университета. | Обратиться в университет. |
| 403 | ip_not_allowed | Запрос направлен с IP-адреса, не разрешённого для токена. | Направлять запросы с разрешённого адреса либо обратиться за изменением перечня адресов. |
| 404 | not_found | Путь не относится ни к одному модулю либо операция не поддерживается. | Проверить путь запроса. |
| 403 | module_not_allowed | Модуль не указан в токене. | Обратиться в университет для расширения доступа. |
| 503 | module_disabled | Модуль временно отключён. | Повторить запрос позднее. |
| 405 | method_not_allowed | Модуль данных принимает только запросы методом GET. Ответ содержит заголовок Allow: GET. | Использовать метод GET. |
| 429 | rate_limit_exceeded | Превышено допустимое число запросов в минуту. | Повторить запрос по истечении времени, указанного в заголовке Retry-After. |
| 400 | invalid_path | Путь запроса содержит недопустимые сегменты: . и .., закодированные точку, косую черту или обратную косую черту. | Указать путь без служебных сегментов и без закодированных разделителей. |
| 413 | request_too_large | Размер тела запроса превышает допустимый. | Уменьшить объём запроса в пределах, указанных в разделе «Ограничения и заголовки». |
| 400 | invalid_json | Тело запроса к модулю ALEM не является корректным объектом JSON. | Передать тело запроса в виде объекта JSON. |
| 400 | invalid_multipart | Тело запроса на расшифровку аудио не является корректным документом multipart/form-data. | Передать файл и параметры в формате multipart/form-data с указанием границы частей. |
| 400 | model_required | В запросе к модулю ALEM не указана модель. | Указать модель в поле model, выбрав её из ответа GET /os/v1/alem/models. |
| 404 | model_not_found | Модель отсутствует в перечне моделей. | Выбрать модель из ответа GET /os/v1/alem/models. |
| 403 | model_not_allowed | Модель не разрешена токеном. | Использовать разрешённую модель либо обратиться за расширением доступа. |
| 502 | upstream_auth_error | Внутренний сбой авторизации при обращении к информационной системе или к платформе Alem.Cloud. | Повторить запрос позднее; при повторении ошибки сообщить в университет идентификатор запроса. |
| 502 | upstream_error | Информационная система или платформа Alem.Cloud не ответила либо завершила обработку с ошибкой. | Повторить запрос позднее с увеличивающимся интервалом. |
| 503 | alem_unavailable | Модуль ALEM временно недоступен. | Повторить запрос позднее. |
| 500 | internal_error | При обработке запроса произошла внутренняя ошибка. | Повторить запрос позднее; при повторении ошибки сообщить в университет идентификатор запроса. |
9.2. Авторизация «Войти через QAIRU»
При авторизации токеном доступа студента вместо кодов invalid_api_key, token_expired, token_blocked, ip_not_allowed и module_not_allowed применяются следующие коды; остальные коды действуют без изменений.
| HTTP | КОД | ЗНАЧЕНИЕ | РЕКОМЕНДУЕМОЕ ДЕЙСТВИЕ |
|---|---|---|---|
| 401 | invalid_token | Токен доступа недействителен: подпись не прошла проверку, истёк срок действия либо токен выдан незарегистрированному приложению. | Обновить токен доступа по refresh_token; при ошибке обновления предложить студенту войти повторно. |
| 401 | token_revoked | Студент отозвал доступ приложения; токены, выданные до отзыва, не принимаются. | Предложить студенту войти повторно и подтвердить доступ. |
| 403 | app_disabled | Приложение отключено администрацией университета. | Обратиться в университет. |
| 403 | student_only | Токен доступа выдан учётной записи, не являющейся студенческой. | Выполнить вход учётной записью студента. |
| 403 | scope_not_granted | Область доступа модуля не предоставлена студентом, не разрешена приложению либо модуль отключён. | Запросить область доступа модуля при входе либо обратиться в университет для расширения перечня модулей приложения. |
Ошибки, возникшие в самой информационной системе при обработке запроса к модулю данных, например 404 для несуществующей записи, передаются в исходном формате информационной системы. Ошибки сервера авторизации приведены в разделе «Войти через QAIRU».