Общие коды ошибок (mpbx-common)
Каждый mpbx_common::Error имеет стабильный код. Уровень API сопоставляет тип с HTTP-статусом и
использует код как суффикс type в проблеме RFC 9457. Сообщения никогда не содержат секретов.
| Код | Тип | Значение | Что делать |
|---|---|---|---|
MPBX-INVALID-ARGUMENT | invalid_argument | Значение имеет неверный формат, например идентификатор не является UUIDv7. | Исправьте запрос. |
MPBX-NOT-FOUND | not_found | Сущность не существует или не видна в вашей компании. | Проверьте идентификатор и компанию. |
MPBX-CONFLICT | conflict | Конфликт состояния, в том числе несовпадение версии оптимистической блокировки. | Перечитайте данные и повторите попытку. |
MPBX-UNAUTHENTICATED | unauthenticated | Нет действительных учётных данных. | Войдите снова. |
MPBX-PERMISSION-DENIED | permission_denied | Вы аутентифицированы, но роли не хватает разрешения. | Обратитесь к администратору. |
MPBX-UNAVAILABLE | unavailable | Зависимость (Postgres, Valkey, ClickHouse, хранилище объектов) недоступна. Можно повторить. | Повторите попытку; проверьте состояние зависимостей. |
MPBX-INTERNAL | internal | Непредвиденное состояние. | Сообщите об ошибке вместе со строкой журнала. |
MPBX-CONFIG | config | Общая проблема конфигурации. | Исправьте mpbx.toml или окружение. |
MPBX-SIP-DOMAIN-UNSET | config / unavailable | В установке не задан домен SIP (область аутентификации digest, с которой регистрируются телефоны). Процесс с ролью SIP отказывается запускаться; под API отвечает 503 на маршрутах, которые выдают учётные данные SIP. | Задайте http.base_domain или sip.install_domains в конфигурации пода для его первого запуска либо завершите мастер настройки, указав адрес ([setup] fqdn). Значение один раз сохраняется в базе данных и общее для всех подов (setup-wizard.md). |
MPBX-CONFIG-INVALID | config | Объединённая конфигурация не разобрана: неизвестный ключ, неверный тип или некорректный адрес (в том числе URL [ice] с неверной схемой, учётными данными или transport, либо ice.turn_ttl_secs вне диапазона 60..=86400). Сообщение называет ключ. | Исправьте указанный ключ; опечатки здесь намеренно считаются ошибками. |
MPBX-CONFIG-FILE-NOT-FOUND | config | Файл конфигурации, указанный явно (аргументом пути или MPBX_CONFIG), не существует. | Исправьте путь. |
MPBX-CONFIG-MISSING | config | Не задана обязательная настройка (например, postgres.url). Сообщение называет переменную окружения. Также: задан ice.turn_urls, но секрет установки TURN_SECRET отсутствует или короче 24 символов (nat-turn.md). | Задайте её в mpbx.toml или через окружение; для TURN передайте TURN_SECRET из mpbx init (никогда не придумывайте его сами). |
MPBX-CONFIG-UNKNOWN-FLAG | config | В [features] указан флаг, которого не существует. | Проверьте написание по списку известных флагов. |
MPBX-TENANT-MISMATCH | permission_denied | Учётные данные (токен или ключ API) принадлежат другой компании, чем та, к которой обращается запрос (хост, заголовок X-Mpbx-Tenant или идентификатор компании в запросе). | Войдите по адресу своей компании или используйте учётные данные этой компании. |
MPBX-TENANT-CLAIM-INVALID | unauthenticated | Сведения о компании в токене противоречивы: область компании без tid или область системы с tid. | Войдите снова; сообщите, если ошибка повторяется (ошибка выпуска токенов). |
MPBX-TENANT-SYSTEM-REQUIRED | permission_denied | Операция, общая для установки (компании, настройки установки, резервные копии, обновления), вызвана учётными данными уровня компании. | Используйте учётную запись Владельца или Администратора системы. |
MPBX-TENANT-REQUIRED | permission_denied | Учётные данные уровня системы вызвали операцию компании без выбора компании. | Передайте заголовок X-Mpbx-Tenant: <company id> (действие записывается в аудит). |
MPBX-APIKEY-MALFORMED | unauthenticated | Ключ API не в формате mpbx_k1_<company>_<key id>_<secret>. Ключ никогда не выводится. | Скопируйте весь ключ заново или создайте новый. |