The transaction passed the precheck validations.
For any error not handled by specific error codes listed below.
Payer account does not exist.
Node Account provided does not match the node account of the node the transaction was submitted to.
Pre-Check error when TransactionValidStart + transactionValidDuration is less than current consensus time.
Transaction start time is greater than current consensus time
valid transaction duration is a positive non zero number that does not exceed 120 seconds
The transaction signature is not valid
Transaction memo size exceeded 100 bytes
The fee provided in the transaction is insufficient for this type of transaction
The payer account has insufficient cryptocurrency to pay the transaction fee
This transaction ID is a duplicate of one that was submitted to this node or reached consensus in the last 180 seconds (receipt period)
If API is throttled out
The API is not currently supported
The file id is invalid or does not exist
The account id is invalid or does not exist
The contract id is invalid or does not exist
Transaction id is not valid
Receipt for given transaction id does not exist
Record for given transaction id does not exist
The solidity id is invalid or entity with this solidity id does not exist
This node has submitted this transaction to the network. Status of the transaction is currently unknown.
The transaction succeeded
There was a system error and the transaction failed because of invalid request parameters.
There was a system error while performing fee calculation, reserved for future.
There was a system error while performing balance checks, reserved for future.
Key not provided in the transaction body
Unsupported algorithm/encoding used for keys in the transaction
When the account balance is not sufficient for the transfer
During an update transaction when the system is not able to find the Users Solidity address
Not enough gas was supplied to execute transaction
contract byte code size is over the limit
local execution (query) is requested for a function which changes state
Contract REVERT OPCODE executed
For any contract execution related error not handled by specific error codes listed above.
In Query validation, account with +ve(amount) value should be Receiving node account, the receiver account should be only one account in the list
Header is missing in Query request
The update of the account failed
Provided key encoding was not supported by the system
null solidity address
update of the contract failed
the query header is invalid
Invalid fee submitted
Payer signature is invalid
The keys were not provided in the request.
Expiration time provided in the transaction was invalid.
WriteAccess Control Keys are not provided for the file
The contents of file are provided as empty.
The crypto transfer credit and debit do not sum equal to 0
Transaction body provided is empty
Invalid transaction body provided
the type of key (base ed25519 key, KeyList, or ThresholdKey) does not match the type of signature (base ed25519 signature, SignatureList, or ThresholdKeySignature)
the number of key (KeyList, or ThresholdKey) does not match that of signature (SignatureList, or ThresholdKeySignature). e.g. if a keyList has 3 base keys, then the corresponding signatureList should also have 3 base signatures.
the livehash body is empty
the livehash data is missing
the key list is empty
the livehash data is not the output of a SHA-384 digest
the query body is empty
the query body is empty
the livehash is not present
the account id passed has not yet been created.
the livehash already exists for a given account
File WACL keys are invalid
The size of the Transaction is greater than transactionMaxBytes
The Transaction has more than 50 levels
Contract is marked as deleted
the platform node is either disconnected or lagging behind.
one public key matches more than one prefixes on the signature map
Transaction not created by platform due to large backlog
auto renewal period is not a positive number of seconds
the response code when a smart contract id is passed for a crypto API request
the account has been marked as deleted
the file has been marked as deleted
same accounts repeated in the transfer account list
attempting to set negative balance value for crypto account
when deleting smart contract that has crypto balance either transfer account or transfer smart contract is required
when deleting smart contract that has crypto balance you can not use the same contract id as transferContractId as the one being deleted
transferAccountId or transferContractId specified for contract delete does not exist
attempting to modify (update or delete a immutable smart contract, i.e. one created without a admin key)
Unexpected exception thrown by file system functions
the duration is not a subset of [MINIMUM_AUTORENEW_DURATION,MAXIMUM_AUTORENEW_DURATION]
Decoding the smart contract binary to a byte array failed. Check that the input is a valid hex string.
File to create a smart contract was of length zero
Bytecode for smart contract is of length zero
Attempt to set negative initial balance
attempt to set negative receive record threshold
attempt to set negative send record threshold
Special Account Operations should be performed by only Genesis account, return this code if it is not Genesis Account
The fee payer account doesn't have permission to submit such Transaction
FreezeTransactionBody is invalid
FreezeTransactionBody does not exist
Exceeded the number of accounts (both from and to) allowed for crypto transfer list
Smart contract result size greater than specified maxResultSize
The payer account is not a special account(account 0.0.55)
Negative gas was offered in smart contract call
Negative value / initial balance was specified in a smart contract call / create
Failed to update fee file
Failed to update exchange rate file
Payment tendered for contract local call cannot cover both the fee and the gas
Entities with Entity ID below 1000 are not allowed to be deleted
Violating one of these rules: 1) treasury account can update all entities below 0.0.1000, 2) account 0.0.50 can update all entities from 0.0.51 - 0.0.80, 3) Network Function Master Account A/c 0.0.50 - Update all Network Function accounts & perform all the Network Functions listed below, 4) Network Function Accounts: i) A/c 0.0.55 - Update Address Book files (0.0.101/102), ii) A/c 0.0.56 - Update Fee schedule (0.0.111), iii) A/c 0.0.57 - Update Exchange Rate (0.0.112).
Fee Schedule Proto uploaded but not valid (append or update is required)
Fee Schedule Proto uploaded but not valid (append or update is required)
Fee Schedule Proto File Part uploaded
The change on Exchange Rate exceeds Exchange_Rate_Allowed_Percentage
Contract permanent storage exceeded the currently allowable limit
Gas exceeded currently allowable gas limit per transaction
File size exceeded the currently allowable limit
The Topic ID specified is not in the system.
A provided admin key was invalid
A provided submit key was invalid
An attempted operation was not authorized (ie - a deleteTopic for a topic with no adminKey).
A ConsensusService message is empty.
The autoRenewAccount specified is not a valid, active account.
An adminKey was not specified on the topic, so there must not be an autoRenewAccount.
The topic has expired, was not automatically renewed, and is in a 7 day grace period before the topic will be deleted unrecoverably. This error response code will not be returned until autoRenew functionality is supported by HAPI.
Chunk number must be from 1 to total (chunks) inclusive
For every chunk, the payer account that is part of initialTransactionID must match the Payer Account of this transaction. The entire initialTransactionID should match the transactionID of the first chunk, but this is not checked or enforced by Hedera except when the chunk number is 1.
[Deprecated v0.8.0] Attempt to set negative receive record threshold
[Deprecated v0.8.0] Attempt to set negative send record threshold
Account is frozen and cannot transact with the token
Maximum number of token relations for a given account is exceeded
The token is invalid or does not exist
Invalid token decimals
Invalid token initial supply
Treasury Account does not exist or is deleted
Token Symbol is not UTF-8 capitalized alphabetical string
Freeze key is not set on token
Amounts in transfer list are not net zero
Token Symbol is not provided
Token Symbol is too long
KYC must be granted and account does not have KYC granted
KYC key is not set on token
Token balance is not sufficient for the transaction
Token transactions cannot be executed on deleted token
Supply key is not set on token
Wipe key is not set on token
The requested token mint amount would cause an invalid total supply
The requested token burn amount would cause an invalid total supply
A required token-account relationship is missing
Cannot execute wipe operation on treasury account
The provided KYC key was invalid
The provided wipe key was invalid
The provided freeze key was invalid
The provided supply key was invalid
Token Name is not provided
Token Name is too long
The provided wipe amount must not be negative, zero or bigger than the token holder balance
Token does not have Admin key set, thus update/delete transactions cannot be performed
An associateToken operation specified a token already associated to the account
An attempted operation is invalid until all token balances for the target account are zero
An attempted operation is invalid because the account is a treasury
Same TokenIDs present in the token list
Exceeded the number of token transfers (both from and to) allowed for token transfer list
TokenTransfersTransactionBody has no TokenTransferList
TokenTransfersTransactionBody has a TokenTransferList with no AccountAmounts
The Scheduled entity does not exist; or has now expired, been deleted, or been executed
The Scheduled entity cannot be modified. Admin key not set
The provided Scheduled Payer does not exist
The Schedule Create Transaction TransactionID account does not exist
The provided sig map did not contain any new valid signatures from required signers of the scheduled transaction
The required signers for a scheduled transaction cannot be resolved, for example because they do not exist or have been deleted
Only whitelisted transaction types may be scheduled
At least one of the signatures in the provided sig map did not represent a valid signature for any required signer
The scheduled and nonce fields in the TransactionID may not be set in a top-level transaction
A schedule already exists with the same identifying fields of an attempted ScheduleCreate (that is, all fields other than scheduledPayerAccountID)
A string field in the transaction has a UTF-8 encoding with the prohibited zero byte
A schedule being signed or deleted has already been deleted
A schedule being signed or deleted has already been executed
ConsensusSubmitMessage request's message size is larger than allowed.
An operation was assigned to more than one throttle group in a given bucket
The capacity needed to satisfy all opsPerSec groups in a bucket overflowed a signed 8-byte integral type
Given the network size in the address book, the node-level capacity for an operation would never be enough to accept a single request; usually means a bucket burstPeriod should be increased
A bucket was defined without any throttle groups
A throttle group was granted zero opsPerSec
The throttle definitions file was updated, but some supported operations were not assigned a bucket
The new contents for the throttle definitions system file were not valid protobuf
The new throttle definitions system file were invalid, and no more specific error could be divined
The transaction references an account which has passed its expiration without renewal funds available, and currently remains in the ledger only because of the grace period given to expired entities
Invalid token max supply
Invalid token nft serial number
Invalid nft id
Nft metadata is too long
Repeated operations count exceeds the limit
The range of data to be gathered is out of the set boundaries
A custom fractional fee set a denominator of zero
The transaction payer could not afford a custom fee
The customFees list is longer than allowed limit 10
Any of the feeCollector accounts for customFees is invalid
Any of the token Ids in customFees is invalid
Any of the token Ids in customFees are not associated to feeCollector
A token cannot have more units minted due to its configured supply ceiling
The transaction attempted to move an NFT serial number from an account other than its owner
A custom fee schedule entry did not specify either a fixed or fractional fee
Only positive fees may be assessed at this time
Fee schedule key is not set on token
A fractional custom fee exceeded the range of a 64-bit signed integer
A royalty cannot exceed the total fungible value exchanged for an NFT
Each fractional custom fee must have its
A fee schedule update tried to clear the custom fees from a token whose fee schedule was already empty
Only tokens of type
Only tokens of type
The provided custom fee schedule key was invalid
The requested token mint metadata was invalid
The requested token burn metadata was invalid
The treasury for a unique token cannot be changed until it owns no NFTs
The payer account has been marked as deleted
The reference chain of custom fees for a transferred token exceeded the maximum length of 2
More than 20 balance adjustments were to satisfy a CryptoTransfer and its implied custom fee payments
The sender account in the token transfer transaction could not afford a custom fee
Currently, no more than 4,294,967,295 NFTs may be minted for a given unique token type
Only tokens of type NON_FUNGIBLE_UNIQUE can have royalty fees
The account has reached the limit on the automatic associations count.
Already existing automatic associations are more than the new maximum automatic associations
Cannot set the number of automatic associations for an account more than the maximum allowed token associations tokens.maxPerAccount
Token is paused. This Token cannot be a part of any kind of Transaction until unpaused
Pause key is not set on token
The provided pause key was invalid
The update file in a freeze transaction body must exist.
The hash of the update file in a freeze transaction body must match the in-memory hash.
A FREEZE_UPGRADE transaction was handled with no previous update prepared.
A FREEZE_ABORT transaction was handled with no scheduled freeze.
The update file hash when handling a FREEZE_UPGRADE transaction differs from the file hash at the time of handling the PREPARE_UPGRADE transaction.
The given freeze start time was in the (consensus) past.
The prepared update file cannot be updated or appended until either the upgrade has been completed, or a FREEZE_ABORT has been handled.
Once a freeze is scheduled, it must be aborted before any other type of freeze can be performed.
If an NMT upgrade has been prepared, the following operation must be a FREEZE_UPGRADE. (To issue a FREEZE_ONLY, submit a FREEZE_ABORT first.)
If an NMT upgrade has been prepared, the subsequent FREEZE_UPGRADE transaction must confirm the id of the file to be used in the upgrade.
If an NMT upgrade has been prepared, the subsequent FREEZE_UPGRADE transaction must confirm the hash of the file to be used in the upgrade.
Consensus throttle did not allow execution of this transaction. System is throttled at
A precompiled contract succeeded, but was later reverted.
All contract storage allocated to the current price regime has been consumed.
An alias used in a CryptoTransfer transaction is not the serialization of a primitive Key
message--that is, a Key with a single Ed25519 or ECDSA(secp256k1) public key and no unknown protobuf fields.
A fungible token transfer expected a different number of decimals than the involved type actually has.
The proxy account id is invalid or does not exist
The transfer account id in CryptoDelete transaction is invalid or does not exist
The fee collector account id in TokenFeeScheduleUpdate is invalid or does not exist
The alias already set on an account cannot be updated using CryptoUpdate transaction.
An approved allowance specifies a spender account that is the same as the hbar/token owner account.owner account.
The establishment or adjustment of an approved allowance cause the token allowance to exceed the token maximum supply.
The specified amount for an approved allowance cannot be negative.
The approveForAll flag cannot be set for a fungible token.
The spender does not have an existing approved allowance with the hbar/token owner.
The transfer amount exceeds the current approved allowance for the spender account.
The payer account of an approveAllowances or adjustAllowance transaction is attempting to go beyond the maximum allowed number of allowances.
No allowances have been specified in the approval transaction.
Spender is repeated more than once in Crypto or Token or NFT allowance lists in a single CryptoApproveAllowance transaction.
Serial numbers are repeated in nft allowance for a single spender account
Fungible common token used in NFT allowances
Non fungible token used in fungible token allowances
The account id specified as the owner is invalid or does not exist.
The account id specified as the spender is invalid or does not exist.
If the CryptoDeleteAllowance transaction has repeated crypto or token or Nft allowances to delete.
If the account Id specified as the delegating spender is invalid or does not exist.
The delegating Spender cannot grant approveForAll allowance on a NFT token type for another spender.
The delegating Spender cannot grant allowance on a NFT serial for another spender as it doesnt not have approveForAll granted on token-owner.
All the NFTs allowed in the current price regime have already been minted