Перейти к основному содержимому

Коды ошибок событий (mpbx-events)

Коды, которые возвращает mpbx_events (W1-PBX-05): шина Bus, конверт события и транзакционная очередь исходящих событий (outbox). Виды сопоставляются со статусами HTTP на уровне API так же, как в общих кодах. Сообщения никогда не содержат данные событий, значения строк или секреты. Руководство: docs/guides/domain-events.md.

КодВидЗначениеЧто делать
MPBX-EVENTS-ENCODEinternalСобытие не удалось сериализовать в JSON.Сообщите о проблеме: это ошибка.
MPBX-EVENTS-DECODEinvalid_argumentJSON не является корректным конвертом события (неизвестный type, отсутствует поле). В ретрансляторе очереди строка переносится в мёртвые письма (dead_at), а в last_error записывается этот код.Обычно событие записала более новая версия до отката: обновите систему снова, затем повторно обработайте мёртвые письма (см. руководство).
MPBX-EVENTS-LAGGEDunavailableПодписчик внутренней шины Bus отстал и пропустил события; сообщение называет их количество. Ошибка временная: подписка продолжает работать.Ускорьте обработку подписчиком или увеличьте ёмкость Bus. Подписчикам, которым нужно получить каждое событие, нужна повторная синхронизация или долговечная шина Bus.
MPBX-EVENTS-CLOSEDunavailableШина Bus остановлена.Ожидаемо при остановке; в остальных случаях перезапустите процесс.
MPBX-EVENTS-TENANT-MISMATCHpermission_deniedСобытие записано в очередь для другой компании, отличной от компании, к которой привязана транзакция (mpbx.tenant_id). Ничего не записано.Ошибка в вызывающем коде: создавайте событие с компанией транзакции.
MPBX-EVENTS-SYSTEM-SCOPE-REQUIREDpermission_deniedРетранслятор очереди, pending_count или prune_published запущены в транзакции, которая не является системной (роль mpbx_system). Ничего не прочитано и не изменено.Ошибка в подключении: создайте ретранслятор через storage::pg::SystemTx::opener(pool, system_ctx) и вызывайте pending_count и prune_published на соединении SystemTx.
MPBX-EVENTS-OUTBOX-DBunavailable or internalОшибка базы данных в очереди (сообщение содержит только SQLSTATE). unavailable (повтор возможен), когда Postgres недоступен; во всех остальных случаях internal, например неизвестная компания (23503) или повторный идентификатор события (23505).Проверьте состояние Postgres; для internal сообщите о проблеме вместе со строкой журнала.