SOROKA Документация API

Ошибки

Любая ошибка API — HTTP-код по классу ошибки и тело одной формы. Решение принимайте по kind (что делать) и code (почему), а не по тексту message: текст может меняться.

Пример
HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-Request-Id: a1b2c3d4e5f60718

{"ok": false,
 "error": {"kind": "too_often", "code": "too_often", "message": "лимит ключа в минуту",
           "retry_after": 12},
 "request_id": "a1b2c3d4e5f60718"}

Классы ошибок

kindHTTPкогдачто делать
caller_error 400 запрос не разобрался: кривые поля, неизвестный метод или вид задачи, запрещённый адрес исправить запрос по code и fields; повтор без правки бесполезен
auth_failed 401 / 403 401 — с ключом что-то не так; 403 — ключу это нельзя 401: проверить ключ и заголовок Authorization; 403: выпустить ключ с нужными правами в кабинете или написать в поддержку. Повтор без этого бесполезен
payment_required 402 тариф не пускает: кредиты кончились, тестовый период закончился, счёт не оплачен, возможности нет в тарифе оплатить счёт, докупить кредиты или включить перерасход в кабинете («Тариф и оплата»); повтор без этого бесполезен
not_found 404 нашего объекта нет или он чужой: подписка, задача, путь; закрытый чат, которого ключ не видит проверить id; повтор бесполезен
no_data 404 у источника нет данных: канал закрыт или удалён, имя не занято, у сообщения нет медиа не повторять: ответ будет тем же
conflict 409 повтор с тем же Idempotency-Key, но другим телом; первый запрос ещё выполняется; второй поток по code: исправить ключ повтора или подождать retry_after
no_free_accounts
повтор помогает
409 сейчас некому выполнить запрос повторить через retry_after
account_lost
повтор помогает
410 исполнитель запроса выбыл посреди работы повторить запрос; поток — продолжить с cursor
payload_too_large 413 тело запроса больше 1 МБ разделить запрос на части
too_often
повтор помогает
429 лимит ключа в минуту выбран подождать retry_after секунд
quota_exceeded
повтор помогает
429 суточная квота ключа выбрана, или задач в работе больше, чем позволяет тариф подождать retry_after (для квоты — до конца суток UTC) или дождаться завершения задач
flood
повтор помогает
429 источник попросил подождать подождать retry_after секунд и повторить
join_limit 429 суточный лимит вступлений выбран ничего не делать: заявка ждёт в очереди
captcha
повтор помогает
429 ВКонтакте попросил капчу повторить позже
platform_unknown
повтор помогает
500 непредвиденная ошибка повторить позже; если повторяется — в поддержку с request_id
exit_fault
повтор помогает
502 сбой сети по пути к источнику повторить
platform_fault
повтор помогает
502 источник ответил ошибкой (5xx) повторить позже
unavailable
повтор помогает
503 сервис временно недоступен или на обслуживании повторить через retry_after

Частые коды

caller_error · 400

bad_argsполя не разобрались; в fields[] — какие и почему
unknown_kindнеизвестный вид задачи
unknown_presetнеизвестный шаблон сбора
preset_not_readyшаблон ещё не подключён
invite_unsupportedссылки-приглашения в задачах не принимаются
private_chatзакрытый чат в шаблоне сбора
webhook_url_forbiddenадрес вебхука не подходит: нужен https на 443 и публичный адрес
unknown_eventнеизвестное событие вебхука
url_forbiddenадрес страницы не с vk.com
bad_methodимя метода ВКонтакте не раздел.метод
method_bannedметод недоступен
idempotency_key_requiredнужен заголовок Idempotency-Key
bad_idempotency_keyIdempotency-Key не того вида: 1–128 символов A-Z a-z 0-9 _ - : .
bad_refссылка на канал не разобралась
too_many_chatsканалов в подписке больше, чем можно
bad_cursorкурсор страницы не разобрался: берите next_cursor из прошлого ответа как есть
too_largeфайл больше max_bytes
use_streamэтот запрос отдаётся только потоком
vk_<номер>ошибка самого ВКонтакте, подробности — в vk_error
tl_bannedTL-запрос вне белого списка или обёртка Invoke*
use_join_endpointвступление и выход — только через /v1/tg/join|leave
lease_requiredдиалоги — только на своей аренде
personal_dialogличная переписка аккаунта — только на своей аренде
no_such_methodтакого метода нет
not_iter_methodпоток — только у методов iter_*
bad_poolпула с таким именем у ключа нет

auth_failed · 401 / 403

no_keyнет заголовка Authorization: Bearer …
bad_key_formatключ не того вида
key_unknownтакого ключа нет
key_revokedключ отозван
key_expiredсрок ключа вышел
wrong_key_typeключ не для этого API
no_scopeу ключа нет права; каких — в missing
ip_not_allowedзапрос не с разрешённого адреса
org_disabledорганизация отключена
edition_forbiddenвозможность недоступна для вашей организации
not_own_accountдиалоги — только у аккаунта своей организации

payment_required · 402

credits_exhaustedкредиты месяца и дополнительные кончились, перерасход выключен или выбран
trial_endedтестовый период закончился: доступно только чтение готового
read_onlyсчёт не оплачен после льготных 7 дней
subscription_cancelledподписка закрыта
no_subscriptionу организации нет тарифа
not_in_planвозможности нет в тарифе (например, медиа на тестовом периоде)
plan_limitлимит тарифа: например, каналов в подписках больше, чем позволяет тариф

not_found · 404

lease_expiredаренда истекла без heartbeat
lease_releasedаренда отпущена
account_unknownаккаунта с такой меткой нет в пулах ключа

no_data · 404

no_mediaу сообщения нет медиа

conflict · 409

idempotency_mismatchтот же Idempotency-Key с другим телом
idempotency_in_progressпервый запрос с этим ключом ещё выполняется
stream_busyу подписки уже открыт поток
paused_by_ownerподписку остановили мы (ключ, тариф) — её не снять с паузы
subscription_endedподписка закончена: менять её нельзя, создайте новую
subscription_not_activeподписка на паузе или закончена: поток не открыть
webhook_limitадресов вебхуков у организации уже максимум
webhook_disabledадрес вебхука выключен: сначала включите его
chat_in_useчат нужен другой подписке

no_free_accounts · 409

no_memberнет свободного участника закрытого чата
account_busyаккаунт в чужой аренде
account_unavailableаккаунт с этой меткой сейчас не работает
no_free_proxiesсвободных прокси нет

account_lost · 410

lease_account_lostаккаунт аренды выбыл: возьмите новую аренду

unavailable · 503

joins_frozenавтовступления заморожены
account_offlineаккаунт аренды не на связи
node_unavailableузел Telegram недоступен

Как повторять