Системные ошибки¶
Ниже приведен список кодов ошибок блокчейн платформы Waves Enterprise.
0-10 – Swagger/API Specific Errs
¶ Ошибки уровня ноды
HTTP код
Код уровня API
Ошибки уровня API
Сообщение
Контекст
Условие
Нет
Нет
Transaction is not in blockchain
При запросе транзакции по id
Транзакции нет в блокчейне
400
1
WrongJson
Failed to parse json message
Актуально для запросов через Swagger
403
2
ApiKeyNotValid
Provided API key is not correct
Актуально только для подписания транзакций на ноде, т.к. при передаче подписанных транзакций не нужен ключ
В запросе передан некорректный или пустой ключ
TooBigArray
400
10
TooBigArrayAllocation
Too big sequences requested
При запросе через Swagger
Запрос содержит слишком много значений
101-111 – TxValidation Errs
Ошибкам, описанным в данном разделе, соответствует HTTP-код 400
.
Ошибки уровня ноды |
Код уровня API |
Ошибки уровня API |
Сообщение |
Контекст |
Условие |
---|---|---|---|---|---|
InvalidSignature(_, _) InvalidRequestSignature |
101 |
InvalidSignature |
invalid signature |
Cобытие внутри блокчейна при валидации блоков (в клиенте не отображается) |
Некорректный id транзакции; некорректная сигнатура блока в запросе; ошибка отображается в интерфейсе клиента при попытке откатить блокчейн для блока с указанной сигнатурой |
InvalidAddress |
102 |
InvalidAddress |
invalid address.
Логируется как:
|
При валидации на ноде любого поля, содержащего адрес, алиас и приватный ключ как отправителя, так и получателя. Если клиентская часть не проверяет валидность адреса |
В запросе передан некорректный адрес, алиас или публичный ключ |
106 |
InvalidSender |
invalid sender |
При формировании Diff из Executed Contract Transaction |
Если создателем Executed Contract Transaction является не майнер блока |
|
108 |
InvalidPublicKey |
invalid public key |
При проверке того, является ли переданная строка публичным ключом |
GET /addresses/ publicKey/ {publicKey} |
Ошибки уровня ноды |
Код уровня API |
Ошибки уровня API |
Сообщение |
Контекст |
Условие |
---|---|---|---|---|---|
110 |
InvalidMessage |
invalid message |
При проверке подписи сообщения на ноде подпись транзакции не соответствует публичному ключу |
POST / addresses/ verify/ {address}, POST / addresses/ verifyText/ {address} |
|
NegativeAmount(x, of) |
111 |
NegativeAmount (s»$x of $of») |
negative amount: $msg |
При создании транзакции отправки, массовой отправки, передачи в лизинг, эмиссии и дополнительной эмиссии пользователь вводит в поле «Сумма» отрицательное число |
Передано отрицательное значение. В интерфейсе клиента при попытке указать отрицательное число, поле ввода переходит в состояние ошибки и выводится ошибка: «Введите положительное число» |
112 – StateCheckFailed Errs – StateCheckFailed(tx:Transaction, err: String)
В данном разделе описана ошибка уровня ноды TransactionValidationError. Ей соответствует HTTP-код
400
, код уровня API112
и ошибка уровня APIStateCheckFailed(tx:Transaction, err: String)
.
¶ Сообщение
Контекст
Условие
State check failed. Reason: $err («error id», «message», tx.json())
Возвращается ошибка 112 StateCheckFailed с вложением, которое содержит код и описание ошибки
Валидация перед UTX
Script doesn’t exist and proof doesn’t validate as signature for $pt
Публичный ключ отправителя не соответствует подписи транзакции
Transactions from non-scripted accounts must have exactly 1 proof
Отправка транзакции с более чем одной подписью на аккаунт без скрипта
${tx.getClass.getSimpleName} transaction has not been activated yet
На ноде-валидаторе не включена используемая в транзакции опция
Transaction $tx is already in the state on a height of $txHeight
Транзакция с таким id уже есть в блокчейне
Attempt to transfer unavailable funds: Transaction application leads to « +s»negative WEST balance to (at least) temporary negative state,
current balance equals $oldWestBalance, « +s»spends equals $ {spendings.balance}, result is $newWestBalance)
На балансе недостаточно средств для транзакций перевода одному или нескольким получателям основного токена WEST.
В интерфейсе клиента отображается ошибка: «Не удалось выполнить транзакцию (%Тип транзакции%)
Недостаточно токенов для оплаты комиссии. Пополните баланс и повторите попытку.»
Attempt to transfer unavailable funds:
Transaction application leads to negative asset « + s»“$aid“ balance to (at least) temporary negative state,
current balance is availableBalance, « + s»spends equals $delta, result is ${availableBalance + delta}
На балансе недостаточно средств для транзакций перевода одному или нескольким получателям ассета
В интерфейсе клиента отображается ошибка: «Не удалось выполнить операцию (%Тип транзакции%)
Рассчитанной суммы комиссии недостаточно для оплаты транзакции.
Отредактируйте сумму комиссии и повторите попытку.»
s»Fee in ${feeAssetId.fold («WEST»)(_.toString)} for ${tx.builder.classTag} does not exceed minimal value of $minimumFee WEST: $feeAmount»
Комиссия за стандартную транзакцию (без учета скриптов) меньше требуемой
This transaction with a smart token
requires ${-restFeeAmount} additional fee
Комиссии недостаточно из-за смарт токена. В интерфейсе клиента отображается ошибка:
«Не удалось выполнить операцию (%Тип транзакции%)
Рассчитанной суммы комиссии недостаточно для оплаты транзакции»
Scripted account requires ${-restFeeAmount} additional fee for this transaction
Комиссии недостаточно из-за смарт аккаунта. В интерфейсе клиента отображается ошибка:
«Не удалось выполнить операцию (%Тип транзакции%).
Рассчитанной суммы комиссии недостаточно для оплаты транзакции»
Transactions with smart tokens require WEST as fee»
Комиссия не в WEST (на клиенте нет такой возможности, т.к. нет спонсирования)
insufficient fee
Отрицательная комиссия
Cannot lease to self. Sender address $senderAddress equals to recipient address.
Лизинг самому себе: на экране создания транзакции передачи токенов в лизинг пользователь вводит свой адрес или псевдоним.
В интерфейсе клиента отображается ошибка: «Невозможно передать токены в лизинг самому себе.
Возможно, вы ошиблись и указали свой адрес в роли получателя. Укажите корректный адрес получателя и повторите попытку.»
Лизинг самому себе
112 – StateCheckFailed Errs – StateCheckFailed(tx: Transaction, err: «State check failed. Reason: PermissionError»)
В данном разделе описана ошибка уровня ноды TransactionValidationError. Ей соответствует HTTP-код
400
, код уровня API112
и ошибка уровня APIStateCheckFailed(tx: Transaction, err: "State check failed. Reason: PermissionError")
.
¶ Сообщение
Контекст
Условие
Genesis Permissioner role cannot be removed
Отзыв роли
Отсутствует разрешение на действие или пользователь в списке banned
Sender ${senderAccount.address} permission validation failed: ${permErr.err}
Transaction ${ unauthorizedTx.id ()} is unauthorized, permission validation impossible
Address ${address.address} is not a miner
Blockchain error during permission validation: $ex
Doesn’t have any of required roles: ${roles.map(_.prefixS).mkString(», «)}»
Required ${roles.map(_.prefixS).mkString(», «)} roles,
missing {missingRoles.map(_.prefixS).mkString(», «)} roles
Has no active $role role
Sender is $role
Смотрите также
113-117 – TxValidation Errs
Ошибки уровня ноды |
HTTP код |
Код уровня API |
Ошибки уровня API |
Сообщение |
Контекст |
Условие |
---|---|---|---|---|---|---|
OverflowError |
400 |
113 |
OverflowError |
overflow error |
Если сумма транзакции и комиссии превышает допустимое значение: общая сумма в масс- трансфере больше лонга (технически мало вероятно) |
Переполнение long |
NegativeMinFee(x, of) |
400 |
114 |
NegativeMinFee (s «$x per $of») |
negative fee per: $msg |
Актуально для Sponsorship транзакций |
Ошибка возвращается при валидации транзакции, если передано отрицательное значение |
MissingSenderPrivateKey |
400 |
115 |
MissingSender PrivateKey |
no private key for sender address in wallet or provided password is incorrect |
При попытке подписать транзакцию на ноде (не на клиенте) в хранилище ключей не найден ключ для данного публичного ключа |
Не найден приватный ключ (для подписи), или пароль от ключевой пары неверный. В клиенте отображается сообщение: «В хранилище ключей не найден подходящий приватный ключ, либо пароль от ключевой пары введен неверно |
InvalidName |
400 |
116 |
InvalidName |
invalid name |
Некоррект- ное имя ассета при транзакции |
в issue транзакции длина названия ассета выходит за установленные границы |
117 |
«Trying to revoke role „$role“ from it’s last owner: „$address“» |
Слишком мало участников с заданной ролью осталось в сети |
Смотрите также
199 – CustomValidationError
В данном разделе описана ошибка уровня ноды CustomValidationError. Ей соответствует HTTP-код 400
и код уровня API 199
.
Ошибки уровня ноды |
Ошибки уровня API |
Сообщение |
Контекст |
Условие |
---|---|---|---|---|
Custom ValidationError |
Одно из перечисленных ниже сообщений |
Возвращается ошибка 119 Custom ValidationError со вложением, которое содержит название и текст ошибки |
Условия описаны ниже |
|
GenericError(ge) |
Custom ValidationError(err) |
err: String (Throwables. getStack Trace AsString(ex)) - место для новых ошибок |
В интерфейсе клиента отображается ошибка: «Нам не удалось определить причину сбоя. Скопируйте код ошибки и отправьте его в поддержку» |
|
GenericError («Alias already claimed») |
Custom ValidationError («Alias already claimed») |
Alias already claimed |
При создании псевдонима на этапе регистрации пользователя |
У другого адреса в блокчейне уже есть такой псевдоним. В интерфейсе клиента отображается ошибка: «Не удаётся продолжить регистрацию. Указанный вами псевдоним уже занят. Придумайте и укажите новый, чтобы продолжить регистрацию. |
Unsupported TransactionType |
Custom ValidationError («Unsupported TransactionType») |
Unsupported TransactionType (version: Int) |
Клиент работает только с актуальными типами |
Неподдерживаемый тип транзакции |
MicroBlock AppendError |
Custom ValidationError (error.toString) |
MicroBlockAppend Error($err, ${microBlock. totalResBlockSig} ~> ${microBlock. prevResBlockSig. trim}]) |
Ошибка валидации микроблока |
|
AccountBalance Error |
Custom ValidationError (errs.values. mkString (», «)) |
errs: Map[Address, String] |
Проверка того, что на балансе аккаунта достаточно средств |
Баланс не позволяет транзакцию В интерфейсе клиента отображается ошибка: «Не удалось выполнить транзакцию (%Тип транзакции%) Недостаточно токенов для оплаты комиссии. Пополните баланс и повторите попытку. |
BlockFromFuture |
Custom ValidationError (error.toString) |
ts: Long |
Не клиентская ошибка, ошибка внутри ноды |
Некорректная временная метка создания блока (timestamp) |
UnsupportedVersion |
Custom ValidationError (error.toString) |
version: Int |
Некорректное значение версии транзакции в Json транзакции |
Неподдерживаемая версия транзакции |
BlockAppendError |
Custom ValidationError (error.toString) |
err: String, b: Block |
Не клиентская ошибка, ошибка внутри ноды |
Ошибка синхронизации блоков |
ScriptParseError |
Custom ValidationError (error.toString) |
m: String |
Пользователь передал скрипт не в формате base64. Ошибка невозможна на клиенте |
Не распознан формат base64 |
OrderValidation Error(_, m) |
CustomValidation Error(m) |
m: String |
Проверка ордеров; в клиенте ордера и биржевая механика отсутствуют |
|
InvalidPolicyData Hash |
CustomValidation Error(error.toString) |
error: String |
Пользователь передал в sendData не base64 datahash. Ошибка невозможна на клиенте |
|
InsufficientFee |
CustomValidation Error(«insufficient fee») |
insufficient fee |
Отрицательная комиссия |
|
ToSelf |
CustomValidation Error(error.toString) |
error: String |
||
AlreadyInTheState |
CustomValidation Error(error.toString) |
error: String |
||
ActivationError |
CustomValidation Error(error.toString) |
error: String |
||
WrongHandshake |
CustomValidation Error(error.toString) |
error: String |
||
MicroBlockAppend Error |
CustomValidation Error(error.toString) |
error: String |
||
Unexpected TransactionError |
CustomValidation Error(error.toString) |
error: String |
||
InvalidContractId |
CustomValidation Error(error.toString) |
error: String |
Неверный идентификатор контракта |
|
PolicyDoesNotExist |
CustomValidation Error(error.toString) |
Policy $policyId does not exist |
Указанная политика не существует |
|
RegistrationNode TransactionRemove Error |
CustomValidation Error(error.toString) |
It is forbidden to remove yourself from the list of registered nodes |
Нода пытается удалить себя из списка участников |
|
PolicyTransaction Error |
CustomValidation Error(error.toString) |
Missing member in recipients and owners section |
Для CreatePolicy Transaction обязательно указание хотя бы одного recipients и owners в каждом блоке |
|
PolicyTransaction ErrorLastMember |
CustomValidation Error(error.toString) |
It is forbidden to delete the last member in the section «recipients» and «owners» |
При операции remove для UpdatePolicy Transaction запрещается удаление самого себя (адресата) из списка owners |
|
PolicyTransaction RemoveError |
CustomValidation Error(error.toString) |
It is forbidden to remove yourself from the list of participants of the policy |
При операции remove для UpdatePolicy Transaction запрещается удаление самого себя из списка из списка owners |
301-304 – TxValidation Errs
Ошибки уровня ноды |
HTTP-код |
Код уровня API |
Ошибки уровня API |
Сообщение |
Контекст |
Условие |
---|---|---|---|---|---|---|
Ошибки уровня ноды |
HTTP код |
Код уровня API |
Ошибки уровня API |
Сообщение |
Контекст |
Условие |
---|---|---|---|---|---|---|
305-307, 309-310, 600-605 – RIDE and Docker Contract Errs
Ошибки уровня ноды |
HTTP-код |
Код уровня API |
Ошибки уровня API |
Сообщение |
Контекст |
Условие |
---|---|---|---|---|---|---|
606-629, 636 – Privacy, Auth, PKI, Contracts
Ошибки уровня ноды |
HTTP-код |
Код уровня API |
Ошибки уровня API |
Сообщение |
Контекст |
Условие |
---|---|---|---|---|---|---|
631-635 – License Errs
Ошибки уровня ноды |
HTTP-код |
Код уровня API |
Ошибки уровня API |
Сообщение |
Контекст |
Условие |
---|---|---|---|---|---|---|
640 – Health check
Ошибки уровня ноды |
HTTP-код |
Код уровня API |
Ошибки уровня API |
Сообщение |
Контекст |
Условие |
---|---|---|---|---|---|---|
641-643 – gRPC specific
Ошибки уровня ноды |
HTTP-код |
Код уровня API |
Ошибки уровня API |
Сообщение |
Контекст |
Условие |
---|---|---|---|---|---|---|
700-799 – Snapshot
Ошибки уровня ноды |
HTTP-код |
Код уровня API |
Ошибки уровня API |
Сообщение |
Контекст |
Условие |
---|---|---|---|---|---|---|
800 – ForbiddenDuePkiModeError
Ошибки уровня ноды |
HTTP-код |
Код уровня API |
Ошибки уровня API |
Сообщение |
Контекст |
Условие |
---|---|---|---|---|---|---|
++ |
«» |
– |