Коды ошибок
HitKey возвращает структурированные ответы об ошибках. На этой странице перечислены все коды по категориям.
Формат ответа
Основной формат ошибок:
json
{
"error": "Описание ошибки",
"code": "ERROR_CODE"
}Ошибки валидации AdonisJS (HTTP 422) используют формат массива:
json
{
"errors": [
{
"message": "Ошибка валидации",
"rule": "required",
"field": "email"
}
]
}Ошибки аутентификации
| Код | HTTP | Описание |
|---|---|---|
INVALID_CREDENTIALS | 401 | Неверный email или пароль |
EMAIL_NOT_VERIFIED | 401 | Email ещё не верифицирован |
Ошибки 2FA
| Код | HTTP | Описание |
|---|---|---|
INVALID_CODE | 400 | Неверный TOTP-код |
SETUP_NOT_INITIATED | 400 | 2FA не настроена |
NOT_ENABLED | 400 | 2FA не включена |
INVALID_TOKEN | 400 | Недействительный или истёкший challenge token |
Ошибки управления email
| Код | HTTP | Описание |
|---|---|---|
EMAIL_ALREADY_IN_USE | 400 | Email занят другим аккаунтом |
INVALID_CODE | 400 | Неверный код верификации |
CODE_EXPIRED | 400 | Код верификации истёк |
TOO_MANY_ATTEMPTS | 400 | Превышено количество попыток |
EMAIL_NOT_FOUND | 404 | Email не связан с аккаунтом |
EMAIL_NOT_VERIFIED | 400 | Email не верифицирован |
ONLY_VERIFIED_EMAIL | 400 | Нельзя удалить единственный верифицированный email |
Ошибки профиля
| Код | HTTP | Описание |
|---|---|---|
USERNAME_INVALID | 400 | Неверный формат username |
USERNAME_RESERVED | 400 | Username зарезервирован системой |
USERNAME_TAKEN | 409 | Username уже занят |
Ошибки регистрации
| Код | HTTP | Описание |
|---|---|---|
EMAIL_ALREADY_VERIFIED | 400 | Email уже верифицирован |
INVALID_CODE | 400 | Неверный код |
TOO_MANY_ATTEMPTS | 400 | Превышено количество попыток |
CODE_EXPIRED | 400 | Код истёк |
NO_CODE | 400 | Нет ожидающей верификации |
Ошибки сброса пароля
| Код | HTTP | Описание |
|---|---|---|
INVALID_TOKEN | 400 | Недействительный токен |
TOKEN_EXPIRED | 400 | Токен истёк |
Ошибки OAuth
OAuth-эндпоинты возвращают текстовые сообщения об ошибках:
json
{
"error": "Invalid client_id"
}| Сообщение | HTTP | Описание |
|---|---|---|
"Invalid client_id" | 400 | Неизвестный client_id |
"redirect_uri doesn't match" | 400 | redirect_uri не совпадает |
"Invalid or expired authorization code" | 400 | Код уже использован или истёк |
Ошибки проектов
| Код | HTTP | Описание |
|---|---|---|
NOT_PROJECT_MEMBER | 403 | Пользователь не участник проекта |
ALREADY_MEMBER | 400 | Пользователь уже участник |
CANNOT_TRANSFER_TO_SELF | 400 | Нельзя передать владение себе |
INVITE_ALREADY_EXISTS | 400 | Приглашение для этого email уже существует |
INVITE_NOT_FOUND | 404 | Приглашение не найдено |
INVITE_EXPIRED | 400 | Приглашение истекло |
EMAIL_MISMATCH | 400 | Email пользователя не совпадает с email приглашения |
HTTP-статусы
| Статус | Значение |
|---|---|
| 200 | Успех |
| 201 | Создано |
| 202 | Принято (2FA challenge) |
| 400 | Ошибка запроса / валидации |
| 401 | Не аутентифицирован |
| 403 | Запрещено (недостаточно прав) |
| 404 | Не найдено |
| 409 | Конфликт (например, username занят) |
| 422 | Ошибка валидации |
| 429 | Слишком много запросов |
| 500 | Внутренняя ошибка сервера |