Ошибка WhatsApp 4: приложение достигло лимита вызовов API
Код ошибки 4 означает, что приложение достигло лимита вызовов API. Описание Meta: «Приложение достигло лимита вызовов API». Считаются вызовы приложения за скользящий час, а не сообщения с номера. Проверьте расход в App Dashboard, подождите и сократите частоту вызовов API.
Код Meta для ошибки «Приложение достигло лимита вызовов API».
Число вызовов, которое приложение может сделать за один час по ограничениям платформы Graph API.
Название, которое руководство Graph API по обработке ошибок дает коду 4.
Что означает код ошибки WhatsApp 4?
Он означает, что ваше приложение сделало слишком много вызовов API в текущем окне, и новые вызовы отклоняются, пока счётчик не снизится.
Meta относит код 4 к ошибкам ограничения скорости запросов с пояснением «Приложение достигло лимита вызовов API». Руководство Graph API по обработке ошибок называет его API Too Many Calls и описывает как временное ограничение.
Рядом стоят ещё два кода ограничений, которые легко перепутать с этим. 80007 означает, что бизнес-аккаунт WhatsApp Business достиг своего лимита. 130429 относится к пропускной способности сообщений в Cloud API. Код 4 не про них: это собственный бюджет вызовов приложения.
Как рассчитывается лимит вызовов приложения?
Для запросов с токеном доступа приложения руководство Meta по ограничению частоты запросов в Graph API даёт формулу: число вызовов за один час равно 200, умноженным на число пользователей.
Число пользователей определяется по уникальным ежедневным активным пользователям приложения, а недельные и месячные показатели берутся, когда дневная активность падает. Лимит относится ко всему приложению, а не к каждому пользователю, поэтому несколько активных пользователей могут израсходовать большую его часть.
В руководстве также сказано, что расход виден в App Dashboard, а после достаточного числа вызовов появляется в заголовке X-App-Usage в ответах. По этому заголовку видно, что лимит приближается, ещё до появления ошибки 4.
Что делать после ошибки 4?
Прекратите вызовы на некоторое время, затем вызывайте реже.
Первая часть прямо описана в руководстве Meta: при достижении лимита нужно перестать вызывать API, потому что продолжение увеличивает счётчик и удлиняет время до следующего успешного вызова.
Вторая часть касается архитектуры. Распределяйте запросы равномерно, а не пачками, фильтруйте ответы так, чтобы один вызов возвращал всё нужное, и избегайте вызовов, которые запрашивают пересекающиеся данные. Чаще всего виноват опрос. Интеграция, которая каждые несколько секунд запрашивает один и тот же статус аккаунта, тратит бюджет на ответы, которые у неё уже есть.
Распространённые ошибки
- Повторять запрос в цикле. Каждый лишний вызов увеличивает счётчик и отодвигает восстановление.
- Считать это ограничением отправки. Код 4 считает вызовы приложения, а пропускная способность сообщений относится к коду 130429.
- Опрашивать эндпоинты статуса с коротким интервалом. Повторное чтение неизменных данных расходует почасовой бюджет.
EasyCoexistence круглосуточно мониторит каждый подключённый номер на своей стороне, поэтому проверку состояния подключения не нужно строить как цикл опроса за счёт бюджета вызовов вашего приложения.
Часто задаваемые вопросы
Ошибка 4 и ошибка 130429 это одно и то же?
Нет. 130429 касается пропускной способности сообщений для номера. Ошибка 4 говорит о числе вызовов API, которые сделало ваше приложение.
Как долго длится ошибка 4?
Пока число вызовов в скользящем окне в один час не опустится ниже лимита. Вызовы в это время продлевают ожидание.
Где посмотреть, насколько близко приложение к лимиту?
В разделе App Dashboard, посвящённом лимиту частоты запросов приложения, и в заголовке X-App-Usage, который приходит в ответах.
Ошибка 4 и ошибка 80007 это одно и то же?
Нет. Meta использует 80007, когда бизнес-аккаунт WhatsApp Business достигает своего лимита, а ошибка 4 считает собственные вызовы приложения.
Читайте дальше
Готовы начать?
Настройте WhatsApp Coexistence за несколько минут, а не месяцев. Приложение продолжит работать на телефоне.
Начать бесплатный пробный периодПроверено по состоянию на