System errors

Below is a list of error codes for the Waves Enterprise blockchain platform.

0-10 – Swagger/API Specific Errs
0-10 - Swagger and API Errors

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.

101-111 – Transaction validation errors

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:
  1. Bad public key string lenght.

  2. Unable to decode base58: ${ex.getMessage}

  3. Unable to create public key: ${ex.getMessage}

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}

101-111 – Transaction validation errors

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 the 112 API level code.

112 – StateCheckFailed(tx: Transaction, err: “State check failed. Reason: PermissionError”)

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, the 112 API level code and API level error StateCheckFailed(tx: Transaction, err: "State check failed. Reason: PermissionError").

112 – StateCheckFailed(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

See also
199 – CustomValidationError

This section describes the CustomValidationError node level error. It corresponds to the 400 HTTP code and the 199 API level code.

199 – Validation errors

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 recipients and owners in each block

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

++

“”

See also