Коды ошибок
Тело любой ошибки: {"code": <int>, "message": "<текст>", "errors": {…}}. Коды совпадают с Discord, чтобы библиотеки ботов узнавали их. Константы — backend/internal/httpx/errors.go.
| Код | HTTP | Сообщение | Когда |
|---|---|---|---|
| 0 | любой | General error | 404 без ресурса, 405, 500 |
| 10002 | 404 | Unknown Application | приложение не существует или принадлежит другому пользователю |
| 10003 | 404 | Unknown Channel | |
| 10004 | 404 | Unknown Guild | |
| 10006 | 404 | Unknown Invite | |
| 10007 | 404 | Unknown Member | |
| 10008 | 404 | Unknown Message | |
| 10011 | 404 | Unknown Role | |
| 10013 | 404 | Unknown User | |
| 10014 | 404 | Unknown Emoji | |
| 10015 | 404 | Unknown Webhook | |
| 10026 | 404 | Unknown Ban | |
| 10060 | 404 | Unknown Sticker | также sticker_ids со стикером чужого сервера |
| 20001 | 403 | Bots cannot use this endpoint | сессии и 2FA, друзья, приём приглашений, создание серверов, жалобы, push, модерация, раздел «Боты», групповые ЛС |
| 20002 | 403 | Only bots can use this endpoint | GET /gateway/bot, GET /applications/@me, GET /oauth2/@me |
| 20016 | 429 | Slowmode rate limit | rate_limit_per_user канала |
| 20024 | 403 | Cannot access age-restricted channel | канал nsfw: пользователю нет 18 лет по дате рождения (сообщения, история, «печатает») |
| 20025 | 403 | Account restricted | теневое ограничение платформы: заявки в друзья и приглашения недоступны до срока |
| 30001 | 400 | Maximum number of guilds reached (100) | |
| 30002 | 400 | Maximum number of friends reached (1000) | |
| 30003 | 400 | Maximum number of pins reached (50) | |
| 30005 | 400 | Maximum number of guild roles reached (250) | |
| 30007 | 400 | Maximum number of webhooks reached (15 на канал) | |
| 30008 | 400 | Maximum number of emojis reached | зависит от уровня сервера |
| 30010 | 400 | Maximum number of reactions reached (20) | |
| 30032 | 400 | Maximum number of applications reached (25) | приложений у одного владельца |
| 30039 | 400 | Maximum number of stickers reached (5) | слоты по уровню сервера |
| 30013 | 400 | Maximum number of guild channels reached (500) | |
| 30016 | 400 | Maximum number of invites reached (1000) | |
| 40001 | 401 | Unauthorized | нет или просрочен токен |
| 40002 | 403 | You need to verify your account | уровень проверки сервера |
| 40005 | 413 | Request entity too large | вложение больше лимита |
| 40006 | 403 | This feature has been temporarily disabled | feature-флаг |
| 40007 | 403 | The user is banned from this guild | бан сервера; также блокировка аккаунта платформой: вход и любой запрос с токеном, message — причина и срок |
| 40032 | 400/404 | Target user is not connected to voice | мут, перевод, GET /users/@me/voice |
| 50001 | 403 | Missing Access | нет VIEW_CHANNEL / не участник |
| 50002 | 403 | Invalid account type | |
| 50003 | 403 | Cannot execute action on a DM channel | |
| 50005 | 403 | Cannot edit a message authored by another user | |
| 50006 | 400 | Cannot send an empty message | |
| 50007 | 403 | Cannot send messages to this user | приватность ЛС |
| 50013 | 403 | Missing Permissions | |
| 50027 | 401 | Invalid Webhook Token | токен в /webhooks/{id}/{token} не совпадает |
| 50014 | 401 | Invalid authentication token | |
| 50033 | 400 | Invalid Recipient(s) | блокировка |
| 50035 | 400 | Invalid Form Body | детали в errors |
| 50024 | 400 | Cannot execute action on this channel type | операции веток над обычным каналом |
| 50074 | 400 | Cannot delete a channel required for Community guilds | канал правил |
| 50083 | 400 | Cannot perform action on archived thread | вход, правка или сообщение в закрытой архивной ветке |
| 60002 | 400 | Two factor is not enabled | выключение/коды без TOTP |
| 60003 | 401/403 | Two factor is required for this operation | вход: в теле mfa: true; 403 — создание приложения без 2FA (KLICHAT_APPLICATIONS_REQUIRE_MFA) |
| 60008 | 401 | Invalid two-factor code | TOTP или резервный код |
| 70003 | 403 | Phone verification code invalid or expired | наш код, нет у Discord |
| 70004 | 403 | Email link invalid or expired | ссылка из письма (подтверждение почты, смена пароля): одноразовая, использована или истекла; наш код |
| 160004 | 400 | A thread has already been created for this message | |
| 160006 | 400 | Maximum number of active threads reached (1000) |
| 200000 | 400 | Message was blocked by AutoMod | сообщение отклонено правилом автомода; message — текст правила, errors.rule_name |
|---|
429
{"message": "You are being rate limited.", "retry_after": 3.2, "global": false}
Заголовки: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (unix, секунды), X-RateLimit-Reset-After, X-RateLimit-Bucket, X-RateLimit-Global, X-RateLimit-Scope, Retry-After. Базовые корзины — спецификация 6.6.
Полное описание REST — OpenAPI 3.1. Разделы: вся документация.