System errors¶
Below is a list of error codes for the Waves Enterprise blockchain platform.
0-10 – Swagger/API Specific Errs
¶ Node
level
errors
HTTP
code
API
level
code
Node
level
code
Message
Context
Condition
No
No
Transaction is not in blockchain
When querying a transaction by id
The transaction is not in the blockchain
400
1
WrongJson
Failed to parse json message
Relevant for requests via Swagger
403
2
ApiKeyNotValid
Provided API key is not correct
Relevant only for signing transactions
on the node, because the key is not needed
when transmitting signed transactions
An invalid or empty key
was passed
in the request
TooBigArray
400
10
TooBigArrayAllocation
Too big sequences requested
When querying through Swagger
The request contains too many values
101-111 – TxValidation Errs
Node level errors |
HTTP code |
API level code |
Node level code |
Message |
Context |
Condition |
---|---|---|---|---|---|---|
InvalidSignature(_, _) InvalidRequestSignature |
400 |
101 |
InvalidSignature |
invalid signature |
Blockchain event during blocks validation (not displayed in the Client) |
Incorrect transaction id Incorrect block signature in request An error is displayed in the Client interface when attempting to rollback the blockchain for the block with the specified signature |
InvalidAddress |
400 |
102 |
InvalidAddress |
invalid address. Logged as: 1. Bad public key string lenght. 2. Unable to decode base58: ${ex.getMessage}” 3. “Unable to create public key: ${ex.getMessage}” |
When validating any field containing the address, alias, and private key of either sender or recipient on the node. If the client part does not check the validity of the address |
An invalid address, alias, or public key was passed in the request |
400 |
106 |
InvalidSender |
invalid sender |
When forming Diff from ExecutedContract Transaction |
If the creator of the Executed Contract Transaction is not the block miner |
|
400 |
108 |
InvalidPublicKey |
invalid public key |
When checking if the passed string is a public key |
GET /addresses/ publicKey/ {publicKey} |
|
400 |
110 |
InvalidMessage |
invalid message |
When verifying the signature of a message on a node. The transaction signature does not match the public key. |
POST / addresses/ verify/ {address} POST / addresses/ verifyText/ {address} |
|
NegativeAmount(x, of) |
400 |
111 |
NegativeAmount (s”$x of $of”) |
negative amount: $msg |
When creating a transfer, mass transfer, leasing, issue and reissue transaction, the user the user enters a negative number in the “Amount” field |
A negative value is passed. In the Client interface, when trying to specify a negative number, the input field goes to error state and displays the “Enter a positive number” error |
112 – StateCheckFailed Errs – StateCheckFailed(tx:Transaction, err: String)
This section describes the TransactionValidationError node level error. It corresponds to the
400
HTTP code and the112
API level code.
¶ Message
Context
Condition
State check failed. Reason: $err (“error id”, “message”, tx.json())
112 StateCheckFailed error is returned with an attachment, that contains the code and description of the error
Validation prior to UTX
Script doesn’t exist and proof doesn’t validate as signature for $pt
The sender’s public key does not match the transaction signature
Transactions from non-scripted accounts must have exactly 1 proof
When sending a transaction with more than one signature to an account without a script
${tx.getClass.getSimpleName} transaction has not been activated yet
The option used in the transaction is not enabled on the validator node
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.
В интерфейсе клиента отображается ошибка: “Не удалось выполнить транзакцию (%Тип транзакции%)
Not enough tokens to pay the fee. Refill the balance and try again.”
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}
На балансе недостаточно средств для транзакций перевода одному или нескольким получателям ассета
В интерфейсе клиента отображается ошибка: “Не удалось выполнить операцию (%Тип транзакции%)
The calculated commission amount is not enough to pay for the transaction.
Edit the fee amount and try again.”
s”Fee in ${feeAssetId.fold (“WEST”)(_.toString)} for ${tx.builder.classTag} does not exceed minimal value of $minimumFee WEST: $feeAmount”
The fee for a standard transaction (without scripts) is less than required
This transaction with a smart token
requires ${-restFeeAmount} additional fee
Комиссии недостаточно из-за смарт токена. В интерфейсе клиента отображается ошибка:
“Failed to execute operation (%Transaction type%)”
Рассчитанной суммы комиссии недостаточно для оплаты транзакции”
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")
.
¶ Message
Context
Condition
Genesis Permissioner role cannot be removed
Role recall
Отсутствует разрешение на действие или пользователь в списке 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
See also
113-117 – TxValidation Errs
Node node level |
HTTP code |
API level code |
Node level code |
Message |
Context |
Condition |
---|---|---|---|---|---|---|
OverflowError |
400 |
113 |
OverflowError |
overflow error |
If the sum of transaction and fee exceeds the permissible value: the total amount in the mass transfer is greater than the long (technically unlikely) |
Long overflow |
NegativeMinFee(x, of) |
400 |
114 |
NegativeMinFee (s “$x per $of”) |
negative fee per: $msg |
Relevant only for Sponsorship transactions |
An error is returned on transaction validation, if a negative value is passed |
MissingSenderPrivateKey |
400 |
115 |
MissingSender PrivateKey |
no private key for sender address in wallet or provided password is incorrect |
When trying to sign a transaction on a node (not on the Client), the key for this public key is not found in the key store |
No private (for signing) key was found, or the key pair password is incorrect. A message is displayed in the Client: “No matching private key was found in the keystore, or the key pair password is entered incorrectly |
InvalidName |
400 |
116 |
InvalidName |
invalid name |
Incorrect asset name in transaction |
the length of the asset name is out of bounds in an issue transaction |
117 |
“Trying to revoke role ‘$role’ from it’s last owner: ‘$address’” |
There are too few participants with the given role left in the network |
199 – CustomValidationError
В данном разделе описана ошибка уровня ноды CustomValidationError. Ей соответствует HTTP-код 400
и код уровня API 199
.
Node level errors |
API level errors |
Message |
Context |
Condition |
---|---|---|---|---|
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) |
Клиент работает только с актуальными типами |
Transaction type not supported |
MicroBlock AppendError |
Custom ValidationError (error.toString) |
MicroBlockAppend Error($err, ${microBlock. totalResBlockSig} ~> ${microBlock. prevResBlockSig. trim}]) |
Microblock validation error |
|
AccountBalance Error |
Custom ValidationError (errs.values. mkString (”, “)) |
errs: Map[Address, String] |
Verifying that there are enough funds in the account balance |
The balance does not allow the transaction В интерфейсе клиента отображается ошибка: “Не удалось выполнить транзакцию (%Тип транзакции%) Недостаточно токенов для оплаты комиссии. Пополните баланс и повторите попытку. |
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 |
The specified policy 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
Node level errors |
HTTP-code |
API level code |
API level errors |
Message |
Context |
Condition |
---|---|---|---|---|---|---|
Node node level |
HTTP code |
API level code |
Node level code |
Message |
Context |
Condition |
---|---|---|---|---|---|---|
305-307, 309-310, 600-605 – RIDE and Docker Contract Errs
Node level errors |
HTTP-code |
API level code |
API level errors |
Message |
Context |
Condition |
---|---|---|---|---|---|---|
606-629, 636 – Privacy, Auth, PKI, Contracts
Node level errors |
HTTP-code |
API level code |
API level errors |
Message |
Context |
Condition |
---|---|---|---|---|---|---|
631-635 – License Errs
Node level errors |
HTTP-code |
API level code |
API level errors |
Message |
Context |
Condition |
---|---|---|---|---|---|---|
640 – Health check
Node level errors |
HTTP-code |
API level code |
API level errors |
Message |
Context |
Condition |
---|---|---|---|---|---|---|
641-643 – gRPC specific
Node level errors |
HTTP-code |
API level code |
API level errors |
Message |
Context |
Condition |
---|---|---|---|---|---|---|
700-799 – Snapshot
Node level errors |
HTTP-code |
API level code |
API level errors |
Message |
Context |
Condition |
---|---|---|---|---|---|---|
800 – ForbiddenDuePkiModeError
Node level errors |
HTTP-code |
API level code |
API level errors |
Message |
Context |
Condition |
---|---|---|---|---|---|---|
++ |
“” |
– |