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
API level errors
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
Only relevant 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
The errors described in this section correspond to the HTTP code 400
.
Node level errors |
API level code |
API level errors |
Message |
Context |
Condition |
---|---|---|---|---|---|
InvalidSignature(_, _) InvalidRequestSignature |
101 |
InvalidSignature |
invalid signature |
Blockchain events 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 |
102 |
InvalidAddress |
invalid address. Logged as:
|
When any field containing the address, alias, and private key of either sender or recipient is validated 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 |
106 |
InvalidSender |
invalid sender |
When forming Diff from ExecutedContract Transaction |
If the creator of the Executed Contract Transaction is not the block miner |
|
108 |
InvalidPublicKey |
invalid public key |
When checking if the passed string is a public keya public key |
GET /addresses/ publicKey/ {publicKey} |
Node level errors |
API level code |
API level errors |
Message |
Context |
Condition |
---|---|---|---|---|---|
110 |
InvalidMessage |
invalid message |
When verifying the message signature on the node, the transaction signature does not match the public key |
POST / addresses/ verify/ {address}, POST / addresses/ verifyText/ {address} |
|
NegativeAmount(x, of) |
111 |
NegativeAmount (s»$x of $of») |
negative amount: $msg |
When creating a transfer, mass transfer, leasing, issue or reissue transaction, the user enters a negative number in the «Amount» field |
A negative value has been passed. In the Client interface, the input field goes to error state and displays the «Enter a positive number» error when a user specifies a negative number |
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
A transaction with this id already exists in the blockchain
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)
There are insufficient funds in the balance for transfer transactions to one or more recipients of the primary WEST token.
The Client interface displays the error: “Failed to execute transaction (%Transaction type%)”
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}
There are insufficient funds in the balance for transfer transactions to one or more recipients of the asset
The Client interface displays the following error: “Failed to execute transaction (%Transaction type%)”
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
The commission is insufficient because of the smart token. The following message is displayed in the Client interface:
“Failed to execute operation (%Transaction type%)
The calculated fee amount is not enough to pay for the transaction”
Scripted account requires ${-restFeeAmount} additional fee for this transaction
The commission is insufficient because of the smart account. The following message is displayed in the Client interface:
“Failed to execute operation (%Transaction type%).
The calculated fee amount is not enough to pay for the transaction”
Transactions with smart tokens require WEST as fee”
Commission not in WEST (there is no such option on the Client as there is no sponsorship)
insufficient fee
Negative fee
Cannot lease to self. Sender address $senderAddress equals to recipient address.
Self-leasing: on the token leasing transaction creation screen, the user enters their address or alias.
The following error message is displayed in the Client interface: “It is not possible to lease tokens to yourself.
You may have mistakenly entered your own address as the recipient. Please enter the correct recipient address and try again.”
Self-leasing
112 – StateCheckFailed Errs – StateCheckFailed(tx: Transaction, err: “State check failed. Reason: PermissionError”)
This section describes the TransactionValidationError node level error. It corresponds to the
400
HTTP code, the112
API level code and API level errorStateCheckFailed(tx: Transaction, err: "State check failed. Reason: PermissionError")
.
¶ Message
Context
Condition
Genesis Permissioner role cannot be removed
Role recall
No action authorization or the user is in the banned list
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
This section describes the CustomValidationError node level error. It corresponds to the 400
HTTP code and the 199
API level code.
Node level errors |
API level errors |
Message |
Context |
Condition |
---|---|---|---|---|
Custom ValidationError |
One of the messages listed below |
A 119 Custom ValidationError is returned with an attachment that contains the name and text of the error |
The conditions are described below |
|
GenericError(ge) |
Custom ValidationError(err) |
err: String (Throwables. getStack Trace AsString(ex)) - placeholder for new errors |
The following error is displayed in the Client interface: “Unable to determine the cause of the failure. Copy the error code and send it to the support” |
|
GenericError (“Alias already claimed”) |
Custom ValidationError (“Alias already claimed”) |
Alias already claimed |
When creating an alias at the user registration stage |
Another address on the blockchain already has such an alias. The following message is displayed in the Client interface: “Unable to proceed with registration. The alias you specified is already used. Please create and specify a new one to continue your registration. |
Unsupported TransactionType |
Custom ValidationError (“Unsupported TransactionType”) |
Unsupported TransactionType (version: Int) |
The Client works only with valid types |
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 The Client interface displays the error: “Failed to execute transaction (%Transaction type%)” Not enough tokens to pay the fee. Refill the balance and try again.” |
BlockFromFuture |
Custom ValidationError (error.toString) |
ts: Long |
Not a Client error, the error is inside the node |
Incorrect block creation timestamp |
UnsupportedVersion |
Custom ValidationError (error.toString) |
version: Int |
Incorrect transaction version value in transaction JSON |
Unsupported transaction version |
BlockAppendError |
Custom ValidationError (error.toString) |
err: String, b: Block |
Not a Client error, the error is inside the node |
Block synchronization error |
ScriptParseError |
Custom ValidationError (error.toString) |
m: String |
The script the user passed is not in base64 format. The error is not possible on the Client |
Base64 format not recognized |
OrderValidation Error(_, m) |
CustomValidation Error(m) |
m: String |
Orders verification; orders and stock mechanics are not available in the Client |
|
InvalidPolicyData Hash |
CustomValidation Error(error.toString) |
error: String |
User passed non base64 datahash to sendData. The error is not possible on the Client |
|
InsufficientFee |
CustomValidation Error(“insufficient fee”) |
insufficient fee |
Negative 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 |
Invalid contract identifier |
|
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 |
The node tries to remove itself from the list of participants |
|
PolicyTransaction Error |
CustomValidation Error(error.toString) |
Missing member in recipients and owners section |
It is mandatory for CreatePolicy Transaction to specify at least one address in the |
|
PolicyTransaction ErrorLastMember |
CustomValidation Error(error.toString) |
It is forbidden to delete the last member in the section “recipients” and “owners” |
The remove operation for UpdatePolicy Transaction prohibits removing the node itself (the addressee) from the list of owners |
|
PolicyTransaction RemoveError |
CustomValidation Error(error.toString) |
It is forbidden to remove yourself from the list of participants of the policy |
When you use the remove operation for UpdatePolicy Transaction it is forbidden to remove your own node from the list of 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 |
---|---|---|---|---|---|---|
++ |
“” |
– |