HTTP коды статусов
| Статус | Значение | Повторяемый |
|---|---|---|
| 200 | Успех | Н/Д |
| 400 | Неверный запрос (невалидные параметры, невалидный минт, неподдерживаемая программа токенов) | Нет |
| 401 | Не авторизован (отсутствующий или неверный API ключ) | Нет |
| 404 | Неподдерживаемый рынок или минт ещё не проиндексирован | Нет (см. ниже) |
| 422 | Необрабатываемый (валидный запрос, но нет жизнеспособного маршрута) | Нет |
| 429 | Превышен лимит запросов | Да |
| 502 | Bad gateway (сбой вышестоящего RPC или DEX) | Да |
| 503 | Сервис недоступен (маршрутизатор не готов или приостановлен) | Да |
| 500 | Внутренняя ошибка сервера | Да |
Конверты ответов
Успех
Неподдерживаемый рынок
Возвращается, когда у минта нет жизнеспособного маршрута на любом поддерживаемом DEX. Полеmessage содержит человекочитаемое и ИИ-читаемое объяснение.
| Причина | Статус | Описание |
|---|---|---|
no_route | 404 | Ни один поддерживаемый DEX не имеет пула для этого минта |
invalid_mint | 400 | Адрес минта не существует в блокчейне |
unsupported_token_program | 400 | Токен использует программу, отличную от SPL Token или Token-2022 |
Не проиндексирован
Возвращается, когда минт существует, но ещё не разрешён. Повторите запрос после небольшой задержки.Ошибка
Общие ответы об ошибках для сбоев валидации, лимитов запросов и серверных ошибок.ExitApiError.
Типы ExitApiError
Каждый SDK предоставляет ExitApiError (или эквивалент) с дискриминатором kind:
| Kind | Триггер | Повторяемый |
|---|---|---|
transport | Сбой сети, ошибка DNS, таймаут | Да |
http_status | Не-2xx HTTP ответ | Да, если статус >= 500 или 429 |
envelope_status | Сервер вернул { "status": "error" } | Нет |
parse | Тело ответа не удалось распарсить как JSON | Нет |
Проверка повторяемости
Встроенное поведение повторных попыток
Все SDK включают автоматические повторные попытки с такими настройками по умолчанию:| Настройка | Значение по умолчанию |
|---|---|
| Макс. попыток | 2 |
| Начальная задержка | 25 мс |
| Макс. задержка | 25 мс |
| Джиттер | 25 мс |
| Таймаут подключения | 200 мс |
| Таймаут попытки | 900 мс |
isRetryable() возвращает true (сбои транспорта, ответы 5xx и 429).
Настройка политики повторных попыток
Лучшие практики
- Не повторяйте ошибки
400,401или422. Они указывают на проблему в запросе или аутентификации, которую нужно исправить в коде. - Не повторяйте
404со"status": "unsupported". У минта нет поддерживаемого рынка. - Повторите один раз при
404со"status": "not_indexed". Минту может потребоваться время для разрешения. - Используйте экспоненциальную задержку при ответах
429. Встроенные повторные попытки обрабатывают это автоматически. - Повторяйте с задержкой при ошибках
502и503. Это временные проблемы инфраструктуры. - Логируйте детали ошибок, включая
kind,statusиbodyдля отладки. - Если вы видите постоянные ошибки
envelope_status, проверьте корректность вашего адресаmintиuser_pubkey.

