Перейти к содержанию

Справочник кодов ошибок

Каждая ошибка 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_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_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

Подробности

Policy-engine потребовал аппрувал, но у выбранных апруверов нет ни одного зарегистрированного устройства, через которое можно подтвердить транзакцию. Транзакция помечается failed. Клиенту нужно сначала зарегистрировать устройства апруверов и создать транзакцию заново.

TRANSACTION_ASSET_MISMATCH

Source и target asset не совпадают.

  • HTTP: 400 Bad Request
  • Kind: validation

Подробности

Для перевода между внутренними кошельками источник и приёмник должны относиться к одной и той же валюте.

TRANSACTION_BLOCKED_BY_POLICY

Транзакция заблокирована policy-engine.

  • HTTP: 403 Forbidden
  • Kind: forbidden

Подробности

Правила politики не разрешают эту операцию. Причина и метаданные решения едут в 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

Подробности

Версия политики не существует в воркспейсе.

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

Подробности

Попытка удалить из группы пользователя, который в ней не состоит.

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.