Справочник кодов ошибок
Каждая ошибка API Pert возвращается в едином JSON-формате:
{
"error": "Описание ошибки для пользователя",
"code": "MACHINE_READABLE_CODE",
"details": {
"field": "name",
"reason": "required"
}
}
error— человекочитаемое сообщение.code— стабильный машиночитаемый код. Имеет смысл использовать его для условной логики обработки ошибки в клиенте.details(опционально) — структурированные данные о причине ошибки (например,fieldиreasonдля валидационных ошибок).
HTTP-статус выводится из поля Kind ошибки:
| Kind | HTTP |
|---|---|
validation |
400 Bad Request |
malformed |
400 Bad Request |
unauthorized |
401 Unauthorized |
forbidden |
403 Forbidden |
not_found |
404 Not Found |
conflict |
409 Conflict |
unavailable |
503 Service Unavailable |
internal |
500 Internal Server Error |
Общие
FORBIDDEN
Клиенту запрещён доступ к ресурсу.
- HTTP: 403 Forbidden
- Kind:
forbidden
Подробности
Клиент аутентифицирован, но у него нет нужных прав для операции. Не выдаётся при отсутствии ресурса — для этого используется *_NOT_FOUND.
INTERNAL_ERROR
Внутренняя ошибка сервиса.
- HTTP: 500 Internal Server Error
- Kind:
internal
Подробности
Непредвиденная ошибка на стороне сервера; клиент не должен пытаться автоматически восстановиться по этому коду — нужно повторить операцию позже или обратиться в поддержку.
MALFORMED_JSON
Некорректное тело запроса (не парсится как JSON).
- HTTP: 400 Bad Request
- Kind:
malformed
Подробности
Тело запроса невалидное (битый JSON, неверная структура).
UNAUTHORIZED
Клиент не аутентифицирован.
- HTTP: 401 Unauthorized
- Kind:
unauthorized
Подробности
Отсутствует или невалиден bearer-токен / сессионная кука. Клиенту нужно повторить аутентификацию.
VALIDATION_ERROR
Ошибка валидации входных данных.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
Значение хотя бы одного поля запроса не соответствует требованиям. Дополнительные данные (имя поля, причина) приходят в Details.
Workspace
WORKSPACE_ALREADY_ASSOCIATED
Workspace уже связан с MPC-конфигурацией.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Попытка повторно ассоциировать workspace с конфигами после того, как ассоциация уже произведена.
WORKSPACE_ALREADY_EXISTS
Конфликт уникальности при создании workspace.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Workspace с таким же уникальным набором атрибутов уже существует.
WORKSPACE_ALREADY_FROZEN
Workspace уже заморожен.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Попытка заморозить workspace, который уже находится в замороженном состоянии.
WORKSPACE_FROZEN
Workspace заморожен, доступны только операции чтения.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Попытка выполнить изменяющую операцию в замороженном workspace. Пока workspace заморожен, разрешены только операции чтения.
WORKSPACE_NOT_FOUND
Workspace не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Запрошенный workspace отсутствует в БД или недоступен текущему пользователю.
WORKSPACE_NOT_FROZEN
Workspace не заморожен.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Попытка разморозить workspace, который не находится в замороженном состоянии.
WORKSPACE_STATUS_INCOMPATIBLE
Статус workspace не позволяет операцию.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Операция требует определённого статуса workspace (например, активации нужен статус new), но текущий статус другой.
WORKSPACE_UNFREEZE_FORBIDDEN
Недостаточно прав для разморозки workspace.
- HTTP: 403 Forbidden
- Kind:
forbidden
Подробности
Workspace был заморожен администратором платформы и может быть разморожен только администратором платформы.
Vault
VAULT_ALREADY_EXISTS
Vault с таким именем уже существует в workspace.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Имя vault должно быть уникальным в рамках workspace.
VAULT_FROZEN
Операция недопустима над замороженным vault.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Vault находится в статусе frozen — действие требует предварительной разморозки.
VAULT_NOT_FOUND
Vault не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Запрошенный vault отсутствует, удалён или принадлежит другому workspace.
VAULT_UNFREEZE_BLOCKED_BY_AML
Admin не может разморозить AML-замороженный vault.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
AML-провайдер запретил админам снимать заморозку. Для разморозки нужны более широкие полномочия или изменение настроек провайдера.
Wallet
WALLET_ALREADY_EXISTS
Wallet с такой комбинацией параметров уже существует.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Попытка создать wallet/asset для существующей пары vault+currency.
WALLET_ASSET_NOT_FOUND
Asset кошелька не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Запрошенный asset отсутствует или принадлежит другому workspace.
WALLET_CURRENCY_UNKNOWN
Клиент указал неизвестный currency_id.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
Currency_id из запроса не зарегистрирован в системе. Поле currency_id приходит в WebError.Details.
WALLET_NETWORK_MISMATCH
Валюта не соответствует сети воркспейса.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
Попытка создать кошелёк для mainnet-валюты в testnet-воркспейсе или testnet-валюты в mainnet-воркспейсе.
WALLET_NOT_FOUND
Кошелёк не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Запрошенный wallet/asset отсутствует или принадлежит другому workspace.
Whitelisted Address
WHITELISTED_ADDRESS_ALREADY_EXISTS
Whitelisted address уже существует.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Указанный адрес уже добавлен в этот whitelisted-кошелёк.
WHITELISTED_ADDRESS_DUPLICATE_IN_WORKSPACE
Адрес уже добавлен в другой кошелёк этого workspace.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
Указанный адрес уже зарегистрирован в рамках данного workspace. Поле address приходит в WebError.Details.
WHITELISTED_ADDRESS_NOT_FOUND
Whitelisted address не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Запрошенный whitelisted-адрес отсутствует или принадлежит другому кошельку.
WHITELISTED_CURRENCY_UNKNOWN
Клиент указал неизвестный currency_id.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
Currency_id из запроса не зарегистрирован в системе. Поле currency_id приходит в WebError.Details.
WHITELISTED_WALLET_ALREADY_EXISTS
Whitelisted wallet с таким именем уже существует.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Имя whitelisted-кошелька должно быть уникальным в рамках workspace.
WHITELISTED_WALLET_NOT_FOUND
Whitelisted wallet не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Запрошенный whitelisted-кошелёк отсутствует или принадлежит неактивному workspace.
AML
AML_PROVIDER_ALREADY_EXISTS
AML-провайдер уже используется.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
В workspace уже подключен AML-провайдер. Необходимо сначала удалить подключенного AML-провайдера, а затем подключить нового.
AML_PROVIDER_INVALID_API_KEY
Некорректный API-ключ AML-провайдера.
- HTTP: 400 Bad Request
- Kind:
malformed
Подробности
Предоставленный API-ключ был отклонён провайдером при попытке подключения. Нужно перепроверить ключ и повторить запрос.
AML_PROVIDER_NOT_FOUND
AML-провайдер не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Workspace ссылается на AML-провайдера, которого нет среди зарегистрированных в системе. Клиенту следует выбрать другого провайдера из списка доступных.
AML_SCREENING_UNAVAILABLE
Сервис AML-скрининга временно недоступен.
- HTTP: 503 Service Unavailable
- Kind:
unavailable
Подробности
Система скрининга не ответила или ответила временной ошибкой. Запрос можно повторить позже; транзакция, уже принятая в обработку, будет допроверена автоматически.
Backup
BACKUP_NOT_FOUND
Backup не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Backup отсутствует, ещё не подготовлен или больше не доступен для запрошенной операции.
BACKUP_STATUS_INCOMPATIBLE
Статус backup не позволяет операцию.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Ожидался один статус, найден другой (например, для подтверждения нужен received).
BACKUP_WORKSPACE_INACTIVE
Workspace неактивен для backup-операции.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Для активного workspace разрешено создавать/проверять backup; в неактивном статусе операция отклонена.
Co-signer
COSIGNER_PART_NOT_FOUND
Co-signer part не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Запрошенный part отсутствует, уже закоммичен (его конфиг очищен) или связанный pending-intent недоступен.
COSIGNER_PART_STATUS_INVALID
Некорректный статус part для операции.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Part находится в состоянии, при котором запрошенная операция недопустима (например, попытка commit без предварительного receive).
Gas station
GAS_STATION_CANNOT_ASSIGN_SELF
Попытка активировать auto-fuel на вольте, который сам является gas station.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
Gas station vault не может быть источником пополнения для самого себя — выберите другой vault.
GAS_STATION_NETWORK_MISMATCH
Валюта не соответствует сети воркспейса.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
Попытка настроить gas station для mainnet-валюты в testnet-воркспейсе или testnet-валюты в mainnet-воркспейсе. Поле currency_id приходит в WebError.Details.
GAS_STATION_NOT_FOUND
Gas station или связанная конфигурация не найдены.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Для workspace/vault не назначена gas station, либо отсутствует asset-конфигурация в назначенной gas station.
Intent
INTENT_BATCH_ACQUIRE_WRONG_ENDPOINT
Batch-sign intent acquire через неверный эндпоинт.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
Batch-sign intent должен acquire-ться через /pending-intent/{id}/acquire-sign, а не через /acquire.
INTENT_NOT_ACQUIRABLE
Intent нельзя acquire текущим пользователем.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Пользователь не подходит на роль acquire-er (нет прав либо intent адресован другому target).
INTENT_NOT_FOUND
Pending intent не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Запрошенный pending intent отсутствует, отозван или принадлежит другому workspace.
INTENT_NOT_REJECTABLE
Sign intent нельзя отклонить.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Отклонить запрос на подпись можно, только пока подпись собирается. Приходит, если intent не типа sign, уже исполнен или отозван, его подпись уже ушла в исполнение, либо транзакция уже в терминальном статусе. Текущие статусы приходят в WebError.Details (intent_status, transaction_status).
INTENT_NOT_SIGNABLE
Intent нельзя подписать.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Для операции AcquireSign intent должен быть типа sign.
INTENT_PAYLOAD_MISSING
Payload intent отсутствует или null.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
Тело pending intent не содержит обязательной секции intent.
INTENT_SIGNING_UNAVAILABLE
Не удалось подписать intent.
- HTTP: 503 Service Unavailable
- Kind:
unavailable
Подробности
Внешняя система подписи временно недоступна; операцию можно повторить.
INTENT_STATUS_INVALID
Некорректный статус intent для операции.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Операция требует определённого статуса (active/acquired); текущий статус другой и приходит в WebError.Details.
Transaction
TRANSACTION_ALREADY_EXISTS
Идемпотентный ключ уже использован.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
По этому X-Idempotency-Key транзакция уже создана. Повторный запрос не создаёт новую и не выполняет балансовую проверку заново. ID уже существующей транзакции кладётся в WebError.Details под ключом transaction_id, чтобы клиент мог её получить.
TRANSACTION_APPROVAL_ALREADY_RECORDED
Попытка изменить уже принятое решение по транзакции.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Решение этого пользователя по запросу на подтверждение уже учтено и не может быть изменено. Ранее записанное решение приходит в WebError.Details под ключом approval_status. Повтор того же самого решения ошибкой не считается и возвращает успех — ретрай после потери ответа безопасен.
TRANSACTION_APPROVAL_INVALID
Попытка апрува невалидным пользователем или для неактуального запроса на подтверждение.
- HTTP: 403 Forbidden
- Kind:
forbidden
Подробности
Пользователь не входит в список approvers, запрос на подтверждение уже завершён / отозван, либо указанная транзакция не относится к этому запросу на подтверждение.
TRANSACTION_APPROVERS_UNAVAILABLE
Ни у одного апрувера нет привязанного устройства.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Правила политики потребовали аппрувал, но у выбранных апруверов нет ни одного зарегистрированного устройства, через которое можно подтвердить транзакцию. Транзакция помечается failed. Клиенту нужно сначала зарегистрировать устройства апруверов и создать транзакцию заново.
TRANSACTION_ASSET_MISMATCH
Source и target asset не совпадают.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
Для перевода между внутренними кошельками источник и приёмник должны относиться к одной и той же валюте.
TRANSACTION_BLOCKED_BY_POLICY
Транзакция заблокирована правилами политики переводов.
- HTTP: 403 Forbidden
- Kind:
forbidden
Подробности
Правила политики не разрешают эту операцию. Причина и метаданные решения едут в WebError.Details.
TRANSACTION_BROADCAST_REJECTED
Сеть отклонила транзакцию при отправке.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Внешняя система обработки транзакций отклонила транзакцию при попытке отправить её в сеть (общий случай, без более специфичной причины).
TRANSACTION_DROPPED_BY_PLATFORM
Платформа отменила транзакцию до отправки в сеть.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Платформа приняла решение не отправлять транзакцию в сеть (например, после ручного вмешательства оператора).
TRANSACTION_EXPIRED_BEFORE_BROADCAST
Транзакция истекла до отправки в сеть.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Срок действия транзакции истёк раньше, чем её успели отправить в сеть (например, устарел использованный blockhash/nonce-контекст).
TRANSACTION_FEE_LIMIT_TOO_LOW
fee_limit не покрывает комиссию уже на этапе создания транзакции.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
Сеть подорожала между котировкой и созданием транзакции. В отличие от CodeTransactionFeeStale (устарела после подписания), тут транзакция ещё не создана — нужна свежая котировка и повтор с новым fee_limit.
TRANSACTION_FEE_STALE
Комиссия успела устареть до отправки в сеть.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Между расчётом комиссии и отправкой транзакции сеть успела подорожать настолько, что рассчитанная комиссия больше не актуальна. Нужно пересоздать транзакцию со свежей котировкой комиссии.
TRANSACTION_INSUFFICIENT_BALANCE
На источнике недостаточно available-баланса.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Available-баланс источника меньше суммы перевода (плюс комиссия, если она списывается из того же актива). В WebError.Details кладутся available и required в атомарных единицах.
TRANSACTION_INSUFFICIENT_FEE_BALANCE
У источника не хватает базового актива на комиссию сети.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Переводится токен, а комиссия сети списывается в базовом активе сети (нативной монете), а не в самом токене. Available-баланса этого базового актива меньше комиссии. В WebError.Details кладутся available, required (в атомарных единицах базового актива) и asset (идентификатор базового актива). Если для вольта включена авто-заправка, она запускается в фоне — повтор перевода может пройти позже, когда заправка дойдёт.
TRANSACTION_NOT_CANCELABLE
Транзакцию уже нельзя отменить.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Отмена возможна, только пока транзакция не передана в сеть. Как только подпись собрана и транзакция ушла на рассылку, отменить её средствами платформы нельзя — исход определяет блокчейн. Также возвращается, если транзакция уже в терминальном статусе (в том числе отменена ранее). Текущий статус кладётся в WebError.Details под ключом status.
TRANSACTION_NOT_FOUND
Транзакция не найдена.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Запрошенная транзакция отсутствует или принадлежит другому workspace.
TRANSACTION_ONCHAIN_FAILED
Транзакция реально исполнилась в сети и завершилась неудачей.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Транзакция дошла до сети и была включена в блок, но её исполнение завершилось ошибкой (например, revert). Это финальный результат: в отличие от CodeTransactionProviderUnavailable, повторная попытка с теми же параметрами не поможет.
TRANSACTION_PROVIDER_UNAVAILABLE
Внешняя система обработки транзакций временно недоступна.
- HTTP: 503 Service Unavailable
- Kind:
unavailable
Подробности
Не удалось получить статус транзакции из-за таймаута или сбоя на стороне внешней системы обработки транзакций. Можно повторить запрос позже.
TRANSACTION_STATUS_INCOMPATIBLE
Статус транзакции не позволяет операцию.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Операция требует определённого статуса (например, разморозка нужна только для frozen). Текущий статус кладётся в WebError.Details.
TRANSACTION_TARGET_MISSING
Не задан адрес/кошелёк назначения.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
В запросе нужно указать либо target_address, либо target_wallet_id.
TRANSACTION_UNFREEZE_BLOCKED_BY_AML
Admin не может разморозить AML-замороженную транзакцию.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
AML-провайдер запретил админам снимать заморозку транзакций.
TRANSACTION_UPSTREAM_ERROR
Ошибка от внешней системы обработки транзакций.
- HTTP: статус наследуется от Kind, который выводится из status_code в Details
- Kind:
validation | not_found | conflict | unauthorized | forbidden | unavailable | internal
Подробности
Внешняя система обработки транзакций вернула не-2xx ответ. Все полезные поля upstream-ответа (status_code, error_code, error_details, transaction_id, status, expired_at) доступны через WebError.Details. Если в upstream-ответе был error_code, именно он позволяет клиенту реагировать на конкретный сценарий.
Company
COMPANY_NOT_FOUND
Компания не найдена.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Запрошенная компания отсутствует в системе.
Webhook
WEBHOOK_LIMIT_EXCEEDED
Превышен лимит webhooks для workspace.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Для workspace настроено максимально допустимое количество webhooks. Удалите неактуальные перед созданием новых.
WEBHOOK_NOT_FOUND
Webhook не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Запрошенный webhook отсутствует или принадлежит другому workspace.
WEBHOOK_SIGNING_KEY_UNAVAILABLE
KMS-подписант не сконфигурирован.
- HTTP: 503 Service Unavailable
- Kind:
unavailable
Подробности
Попытка получить публичный ключ для проверки подписи, но trust-сервис не настроен. Скорее всего ошибка конфигурации сервиса.
WEBHOOK_URL_INVALID
URL вебхука не прошёл проверку.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
URL не парсится, использует недопустимую схему, указывает на loopback/приватную сеть или хост не резолвится. Конкретная причина едет в WebError.Details.
User
TOTP_INVALID
Переданный TOTP-код не подошёл.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
Код не совпал ни с основным TOTP, ни с backup-кодом. Неудачные попытки учитываются брутфорс-защитой (см. CodeTOTPTooManyAttempts).
TOTP_REQUIRED
Для операции требуется TOTP-код, но он не передан.
- HTTP: 400 Bad Request
- Kind:
validation
Подробности
У пользователя включена 2FA — повторить запрос с totp_code. Если доступ к TOTP утерян (сценарий забытого пароля), обратиться в поддержку.
TOTP_RESET_TOO_MANY_ATTEMPTS
Превышен лимит неверных паролей при сбросе 2FA.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
По этой ссылке сброса накоплено слишком много неверных паролей за окно. Проверка временно заблокирована во избежание подбора пароля; если срок ссылки истёк или попытки исчерпаны, запросить новый сброс у поддержки.
TOTP_TOO_MANY_ATTEMPTS
Превышен лимит неудачных попыток ввода TOTP-кода.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
По пользователю накоплено слишком много неверных попыток 2FA за окно. Проверка временно заблокирована во избежание брутфорса; повторить позже.
USER_CANNOT_PERFORM_OPERATION_ON_HIMSELF
Действие над собственной учётной записью не разрешено.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Пользователь-инициатор не может выполнить действие, где объектом является он сам. Например, изменить свою роль, удалить или заблокировать себя и тд.
USER_NOT_FOUND
Пользователь не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Пользователь не существует в системе (в обычном или платформенном тенантах)
USER_STATE_INCOMPATIBLE
Состояние, в котором находится аккаунт пользователя не позволяет выполнить операцию.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Для выполнения операции требуется определенное состояние аккаунта пользователя. Это может быть конкретный статус, роль, факт регистрации в системе, наличие/отсутствие TOTP и тд.
Role
ROLE_NOT_FOUND
Роль не найдена.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Роль не существует в системе.
Permission
PERMISSION_NOT_FOUND
Пермишен не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Пермишен не существует в системе.
Tenant
TENANT_INACTIVE
Тенант не активирован.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Для выполнения операции требуется, чтобы тенант был активирован
TENANT_NOT_FOUND
Тенант не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Тенант не существует в системе.
TENANT_TYPE_INACTIVE
Тип тенанта не активирован.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Для выполнения операции требуется, чтобы тип тенант был активирован
TENANT_TYPE_NOT_FOUND
Тип тенанта не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Тип тенанта не существует в системе.
Session
SESSION_ALREADY_LOGGED_OUT
Сессия уже завершена.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Невозможно выйти из сессии, которая уже завершена (logout уже выполнен).
SESSION_EXPIRED
Время действия сессии истекло.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Время действия сессии истекло
SESSION_NOT_FOUND
Сессия не найдена.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Сессия не существует в системе.
Device
DEVICE_ALREADY_EXISTS
Конфликт уникальности при привязке устройства пользователя.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Девайс с таким же уникальным набором атрибутов уже существует.
DEVICE_INACTIVE
Устройство не активировано.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Для выполнения операции требуется, чтобы устройство было активировано
DEVICE_NOT_FOUND
Устройство не найдено.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Устройство пользователя не существует в системе.
DEVICE_UNPAIR_FORBIDDEN
Отвязка устройства запрещена ролью пользователя.
- HTTP: 403 Forbidden
- Kind:
forbidden
Подробности
Роль пользователя в тенанте помечена unpairable_device: true в roles.yml — отвязка/отзыв устройства запрещены для всех, включая самого пользователя и платформенного администратора.
API Key
API_KEY_ALREADY_REVOKED
API ключ уже был отозван.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Невозможно отозвать API ключ, который уже отозван.
API_KEY_EXPIRED
Время действия API ключа истекло.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Невозможно использовать API ключ, время действия которого истекло
API_KEY_NOT_FOUND
API ключ не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
API ключ не существует в системе.
API_KEY_RATE_LIMIT_REACHED
Превышен или достигнут лимит запросов.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Невозможно использовать API ключ, у которого достигнуто ограничение на количество запросов
Service Account
SERVICE_ACCOUNT_ALREADY_EXISTS
Конфликт уникальности при создании сервис аккаунта.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Сервис аккаунт с таким же уникальным набором атрибутов уже существует.
SERVICE_ACCOUNT_INACTIVE
Сервисный аккаунт не активирован.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Для выполнения операции требуется, чтобы сервисный аккаунт был активирован
SERVICE_ACCOUNT_NOT_FOUND
Сервисный аккаунт не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Сервисный аккаунт не существует в системе.
Policy
POLICY_NOT_FOUND
Политика не найдена.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Политика не существует в воркспейсе.
POLICY_VERSION_NOT_FOUND
Версия политика не найдена.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Версия политики не существует в воркспейсе.
TRANSFER_POLICY_INVALID
Активная политика переводов настроена некорректно.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Сработавшее правило активной политики переводов невозможно применить к транзакции: в правиле нет действующих подписантов, набор апруверов пуст или после исключения инициатора и неактивных участников меньше требуемого порога, либо настройки подписантов противоречат друг другу. Транзакция помечается failed. Повторять её бессмысленно, пока администратор не исправит политику. Конкретная причина приходит в сообщении ошибки. В отличие от TRANSACTION_APPROVERS_UNAVAILABLE, проблема здесь в самой политике, а не в отсутствии устройств у корректно заданных апруверов.
Group
GROUP_MEMBERS_LIMIT_REACHED
Достигнут лимит числа членов группы.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
User_groups.max_members_per_group (roles.yml, дефолт 100, 0 = без лимита). Проверка на уровне приложения при добавлении членов.
GROUP_NAME_TAKEN
Имя группы занято.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
В тенанте уже существует группа с таким именем.
GROUP_NOT_FOUND
Группа не найдена.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Группа пользователей не существует в системе.
ROLE_FORBIDDEN_FOR_GROUP
Роль пользователя запрещает членство в группах.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Роль пользователя в тенанте группы входит в список user_groups.membership_forbidden_roles (roles.yml), по умолчанию VIEWER. Проверка выполняется только в момент добавления: смена роли уже состоящего в группе пользователя членство не пересматривает.
USER_ALREADY_IN_GROUP
Пользователь уже состоит в группе.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Повторное добавление пользователя в группу.
USER_NOT_IN_GROUP
Пользователь не состоит в группе.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Попытка удалить из группы пользователя, который в ней не состоит.
Rule
POLICY_RULE_INVALID_SIGNER_CONFIG
Противоречивая настройка подписантов в правиле политики.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
В правиле одновременно включён режим «подписывает инициатор» и заданы другие подписанты или группы. Правило нужно исправить.
POLICY_RULE_NO_ELIGIBLE_APPROVERS
В правиле политики недостаточно действующих апруверов.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Набор апруверов сработавшего правила пуст (например, указана пустая группа), либо после исключения инициатора или неактивных участников апруверов меньше требуемого порога. Транзакции по этому правилу невозможны, пока правило не исправят.
POLICY_RULE_NO_ELIGIBLE_INITIATORS
В правиле политики нет ни одного действующего инициатора.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Инициаторы правила активной политики заданы только группами пользователей, и ни в одной из них нет действующих участников. Правило не может сработать ни для кого, и решение по транзакции молча принимало бы следующее правило. Транзакции невозможны, пока правило не исправят.
POLICY_RULE_NO_ELIGIBLE_SIGNERS
В правиле политики нет ни одного действующего подписанта.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Сработавшее правило активной политики не содержит ни одного действующего подписанта (например, в подписантах указана пустая группа). Транзакции по этому правилу невозможны, пока правило не исправят.
Tags
TAG_ALREADY_EXISTS
Конфликт уникальности при создании tag.
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Tag с таким же уникальным набором атрибутов уже существует.
TAG_ATTACHED_TO_VAULT
Tag привязан к vault
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Невозможно выполнить операцию (обычно удаление) тк tag привязан к vault. Сначала необходимо отвязать tag от vault
TAG_IS_USED_IN_POLICY_RULE
Tag используется в правилах политик
- HTTP: 409 Conflict
- Kind:
conflict
Подробности
Невозможно выполнить операцию (обычно удаление), тк tag используется в одном или нескольких правилах политик
TAG_NOT_FOUND
Tag не найден.
- HTTP: 404 Not Found
- Kind:
not_found
Подробности
Запрошенный tag отсутствует, удалён или принадлежит другому workspace.