Коды ошибок SMS (mpbx-sms)
Возвращаются маршрутами SMS и конечной точкой вебхука (W3-SMS-01). Сообщения никогда не содержат учётных
данных провайдера, подписей или текста сообщения; в них указываются не более чем идентификаторы и имена
полей. Коды, которыми начинается неудача отправки сообщения (MPBX-SMS-PROVIDER-REJECTED,
MPBX-SMS-PROVIDER-UNAVAILABLE, а также собственные короткие коды провайдера), сохраняются как
error_code сообщения и передаются в событии sms.failed. Руководство: SMS.
| Код | Вид | Значение | Что делать |
|---|---|---|---|
MPBX-SMS-PROVIDER-NOT-FOUND | not_found | В этой компании нет такой конфигурации провайдера (провайдер другой компании не виден). | Проверьте идентификатор. |
MPBX-SMS-NUMBER-NOT-FOUND | not_found | В этой компании нет такого номера. | Проверьте идентификатор. |
MPBX-SMS-CONVERSATION-NOT-FOUND | not_found | В этой компании нет такого диалога. | Проверьте идентификатор. |
MPBX-SMS-MESSAGE-NOT-FOUND | not_found | В этой компании нет такого сообщения. | Проверьте идентификатор. |
MPBX-SMS-KIND-UNSUPPORTED | invalid_argument | Вид провайдера kind не поддерживается этой установкой (адаптеры добавляются в каждом релизе). | Используйте один из видов, которые GET /api/v1/sms/providers перечисляет в available_kinds. |
MPBX-SMS-CONFIG-INVALID | invalid_argument | Название, настройки или учётные данные провайдера не подходят для его вида (неверная структура, отсутствующий или слишком короткий секрет). | Исправьте указанное поле. Учётные данные доступны только для записи и заменяют все сохранённые. |
MPBX-SMS-NUMBER-INVALID | invalid_argument | Телефонный номер не в международном формате (знак +, затем от 7 до 15 цифр, без ведущего нуля). | Укажите +15550100; пробелы, дефисы, точки и скобки удаляются. |
MPBX-SMS-NUMBER-TAKEN | conflict | У компании уже есть этот номер. | Обновите существующий номер. |
MPBX-SMS-PROVIDER-NAME-TAKEN | conflict | Другой провайдер компании уже имеет такое название. | Выберите другое название. |
MPBX-SMS-FROM-NOT-OWNED | invalid_argument | Номер отправителя не входит в SMS-номера компании. | Сначала добавьте номер к провайдеру (POST /api/v1/sms/numbers). |
MPBX-SMS-NUMBER-DISABLED | conflict | Номер отправителя выключен. | Включите его или отправьте с другого номера. |
MPBX-SMS-PROVIDER-DISABLED | conflict | Провайдер номера выключен. Сообщение в очереди, провайдер которого выключили до отправки, завершается с этим кодом. | Включите провайдера. |
MPBX-SMS-BODY-INVALID | invalid_argument | Текст пуст, длиннее 1600 символов или содержит управляющие символы, кроме переводов строк и табуляции. | Сократите или очистите текст. |
MPBX-SMS-ROUTE-INVALID | invalid_argument | Цель маршрута несогласованна (вид без идентификатора или идентификатор при виде none), либо пользователя или внутреннего номера нет в компании. | Используйте {"kind":"none"} или вид с существующим target_id. Очереди и группы вызова принимаются как идентификаторы, пока не существуют их объекты. |
MPBX-SMS-PROVIDER-IN-USE | conflict | У провайдера ещё есть номера или сообщения, поэтому его нельзя удалить (история сохраняется). | Выключите его (enabled: false). |
MPBX-SMS-NUMBER-IN-USE | conflict | У номера ещё есть диалоги, поэтому его нельзя удалить. | Выключите его. |
MPBX-SMS-CHANGED | conflict | Объект изменился между вашим чтением и записью (устаревший If-Match). | Прочитайте его снова и повторите запрос с новым ETag. |
MPBX-SMS-CREDENTIALS-UNREADABLE | config | Защищённые учётные данные провайдера не открываются (мастер-ключ заменили без повторной упаковки или строка повреждена). Сообщения через этого провайдера не отправляются, его вебхуки отклоняются. | Сохраните учётные данные провайдера заново. |
MPBX-SMS-PROVIDER-REJECTED | н/д (error_code сообщения) | Провайдер окончательно отклонил сообщение (недопустимый адрес назначения, блокировка, запрет). Не повторяется. | Прочитайте причину в консоли провайдера; исправьте номер или содержимое. |
MPBX-SMS-PROVIDER-UNAVAILABLE | н/д (error_code сообщения) | До провайдера не удалось достучаться или он постоянно не отвечает; все попытки (5, с удвоением задержки начиная с 30 секунд) исчерпаны. | Проверьте статус провайдера и учётные данные, затем отправьте сообщение снова. |
MPBX-SMS-SEND-OUTCOME-UNKNOWN | н/д (error_code сообщения) | Сбой потерял результат отправки, а провайдер (Telnyx, Plivo, Vonage, SMPP) не может сказать, отправил ли он сообщение или отбросил бы повтор, поэтому повторной отправки не было. Сообщение может быть доставлено, а может и нет. | Проверьте журнал провайдера по этому сообщению; если его там нет, отправьте снова. |
MPBX-SMS-WEBHOOK-UNAUTHORIZED | unauthenticated | Вызов вебхука не содержит действительной подписи для этого провайдера (нет подписи, неверный секрет, изменено тело или отметка времени отличается более чем на 5 минут). Ответ не содержит подробностей. | Проверьте секрет подписи провайдера и правильность его часов. |
MPBX-SMS-WEBHOOK-MALFORMED | invalid_argument | Подпись верна, но тело не соответствует ожиданиям адаптера провайдера. | Проверьте настройку формата вебхуков провайдера. |
MPBX-SMS-WEBHOOK-TOO-LARGE | invalid_argument | Тело вебхука больше 64 КиБ. | Уменьшите размер пакета у провайдера. |
MPBX-SMS-WEBHOOK-NOT-FOUND | not_found | Адрес вебхука не относится ни к одному активному провайдеру (неизвестен, выключен или адрес был заменён). | Скопируйте актуальный адрес со страницы провайдера. |
MPBX-SMS-WEBHOOK-RATE-LIMITED | unavailable | На один адрес вебхука поступило более 600 вызовов в минуту. Провайдеру следует повторить позже. | Снизьте скорость запросов провайдера; повторы безопасны. |
MPBX-SMS-EGRESS-BLOCKED | н/д (error_code сообщения, тестовая отправка) | Универсальный HTTP-провайдер отказался обращаться к настроенному адресу: частный, loopback, link-local или адрес метаданных, http без allow_http, либо имя, которое разрешается в такой адрес. Не повторяется. | Используйте публичный адрес https; см. универсальный HTTP-провайдер. |
MPBX-SMS-CREDENTIALS-REQUIRED | invalid_argument | Изменение настроек универсального HTTP-провайдера отправило бы сохранённые учётные данные в другое место (другой URL, метод или набор заголовков либо учётные данные в другой части запроса), либо в сохранённых учётных данных нет поля, которое нужно новым настройкам. Сохранённые учётные данные доступны только для записи и передаются только туда, куда были введены. | Отправьте учётные данные заново в том же обновлении; см. универсальный HTTP-провайдер. |
MPBX-SMS-TEST-RATE-LIMITED | ограничение частоты (429) | Консоль тестирования отправила более 10 сообщений в минуту для компании или более 3 одному получателю. Она отправляет настоящие сообщения, поэтому действует ограничение (FU-SMS03-2). | Подождите минуту (Retry-After: 60). |
MPBX-SMS-RECIPIENT-OPTED-OUT | конфликт (409) | Получатель отправил STOP (или его добавили вручную) для этого номера отправителя, поэтому ничего не отправлено. Также это error_code сообщения в очереди, которое STOP остановил до отправки. Каждый отказ записывается в журнал (действие аудита sms.send_blocked). | Не отправляйте SMS этому человеку с этого номера. Если он снова хочет получать сообщения, он отвечает START, либо администратор удаляет запись в SMS > Отписки; см. контрольный список для соответствия требованиям. |
MPBX-SMS-OPT-OUT-NOT-FOUND | not_found | В этой компании нет такой записи об отписке. | Запросите список записей снова. |
MPBX-SMS-CAP-REACHED | конфликт (409) | Лимит отправки компании, номера отправителя или пользователя исчерпан за день или месяц (UTC). Ничего не отправлено. Первый отказ за каждый период вызывает событие sms.cap_reached и запись в аудит. | Дождитесь следующего периода, повысьте лимит в SMS > Использование или отправьте с другого номера. |
MPBX-SMS-CAP-INVALID | invalid_argument | Лимит недопустим: лимит number требует number_id, лимит user требует user_id, лимит company или recipient не требует ни того, ни другого; лимит inbound относится к компании или одному номеру; значение от 0 до 1000000000; номер или пользователь должны принадлежать компании; не более 500 лимитов. | Исправьте лимит. |
MPBX-SMS-CAP-NOT-FOUND | not_found | В этой компании нет такого лимита. | Запросите список лимитов снова. |
MPBX-SMS-PRICING-INVALID | invalid_argument | В прайс-листе валюта не является трёхбуквенным кодом ISO в верхнем регистре или цена вне диапазона от 0 до 100000000 миллионных долей; также неверное правило направления (префикс от 1 до 8 цифр, указанный один раз) или счёт (даты, валюта, курс). | Исправьте прайс-лист, правило или счёт. |
MPBX-SMS-INVOICE-NOT-FOUND | not_found | В этой компании нет такого счёта оператора. | Запросите список счетов снова. |
MPBX-SMS-MMS-UNSUPPORTED | invalid_argument | Провайдер номера отправителя не может отправлять MMS (сейчас только Twilio). | Отправьте с номера у провайдера, который поддерживает MMS, или отправьте обычный текст. |
MPBX-SMS-MEDIA-INVALID | invalid_argument | Медиафайлы MMS недопустимы: от 1 до 10 публичных адресов https без учётных данных. | Исправьте media_urls. |
MPBX-SMS-MEDIA-NOT-FOUND | not_found | Медиафайл MMS не существует или его публичный адрес неверен. | Загрузите файл заново. |
MPBX-SMS-MEDIA-TOO-LARGE | invalid_argument | Загруженный медиафайл MMS пуст или больше 5 МБ. | Отправьте файл меньшего размера. |
MPBX-SMS-MEDIA-TYPE-UNSUPPORTED | invalid_argument | MMS поддерживает файлы JPEG, PNG, GIF, MP4, MP3, AMR и PDF; загружен файл другого типа. | Преобразуйте файл. |
MPBX-SMS-MEDIA-STORE-OFF | unavailable | В этой установке нет хранилища объектов [files], поэтому медиафайлы MMS нельзя сохранить. | Настройте [files]. |