How to fix common errors reported on EOSIO

When developing on EOSIO, users may encounter some error messages. Sometimes these error messages are very difficult to understand, which often leads us to see various screenshots and problems in the development group. To help developers who have just started to overcome these challenges, we made a small summary of some of the most common error messages.

Please note that some wallets and other application interfaces may change the original message format to make it easier to understand. For example, the original output of nodeos (the operating software of EOSIO) may look like this:

{"code": 500, "message": "Internal Service Error", "error": {"code": 3080004, "name": "tx_cpu_usage_exceeded", "what": "Transaction exceeded the current CPU usage limit imposed on the transaction "," details ": [{" message ":" billed CPU time (2115 us) is greater than the maximum billable CPU time for the transaction (162 us) "," file ":" transaction_context.cpp "," line_number ": 553," method ":" validate_cpu_usage_to_bill "}]}}

And the error message you receive may become: billed CPU time (2115 us) is greater than the maximum billable CPU time for the transaction (162 us) translation: the required CPU (2215 us) exceeds the maximum allowed for the transaction value

In this article, we will use the latter more concise information to discuss. Error 1: “Insufficient CPU Available”

Transaction failed-billed CPU time (1342 us) is greater than the maximum billable CPU time for the transactions (71 us)

Translation: Transaction failed-CPU required (1342 us) exceeds the maximum value allowed for the transaction (71 us)

This error means that in the account that provided the CPU for this transaction, the number of tokens mortgaged for the CPU is insufficient. The unit of the CPU is microseconds (us), which is calculated according to the time required for a BP node to process a transaction.

Solution: You need to mortgage more tokens to the CPU

You can mortgage more of your tokens on the CPU, or you can use other accounts to mortgage you (collateral refers to the English “stake” or “delegate” here). You can also rent some EOSIO chain resources from REX. The CPU can be rented for 30 days at a time, and the lease can be renewed when the 30-day period expires.

Expert tips

Your CPU usage will be completely reset every 24 hours. When viewing account information on the block explorer, it may show that some of the CPU on your account is occupied, and no reset is displayed, because it will be updated after you push a new transaction. Error 2: “Incorrect signatures” (signature error)

Provided keys, permissions, and delays do not satisfy declared authorizations, transaction declares authority '{"actor": "testaccount1", "permission": "active"}', but does not have signatures for it under a provided delay of 0 ms , provided permissions [], provided keys [EOS7j9ViHGp… .Po57], and a delay max limit of 3888000000

Translation: The provided keys, permissions and delays cannot meet the authorization requirements. The transaction requires authorization permissions: ‘{“actor”: “testaccount1”, “permission”: “active”}’, but the absence delay is 0 ms, the permissions [], Signature with the key [EOS7j9ViHGp… .Po57] and the maximum delay limit of 3888000000

The reason for this error is that the key used by the user cannot meet the authority required by the signed exchange. A common situation is that multiple keys are managed in your wallet, or your wallet cannot access the previous key after resetting.

Solution: Use the correct key to sign the transaction

Not every user knows how to determine which key should be used. First of all, you can go to the block browser to check, generally your permissions will be listed on the account page. If you use eosq, you can see the following information:

253e32855152bb90db440fc1e98f8347

Then, when you see your public key, the private key you use must match the public key. Under normal circumstances, you need to sign the transaction with your active permission, then you need to check whether the private key you use matches the public key with active permission.

If you have reset your wallet, you may need to restore the previous key through the previous backup or passphrase. The recovery method is different from each wallet, but the general wallet will explain their recovery method when you import the key / create an account.

Expert tips

It is recommended to be familiar with EOSIO’s account authority system. After understanding it, you will find that it can achieve many powerful functions. We recommend that you create an account on the test network, change your key, and set different permissions yourself. This is a good way to familiarize yourself with the permissions system. You will know it if you try it. It is not that complicated. Error 3: “Arbitrary Data is not enabled” (arbitrary data is not enabled)

Transaction failed-Please enable arbitrary data on ledger device within EOS app. {"Name": "TransportError", "message": "Failed to sign with Ledger device: U2F TIMEOUT"

Translation: Transaction failed-please enable any data on the ledger device within the EOS app. {“name”: “TransportError”, “message”: “Failed to sign with Ledger device: U2F TIMEOUT”

Solution: Enable arbitrary data signature

Users who use ledger hardware wallets will encounter this error if they do not enable any data signing. Everyone will ask: “What is arbitrary data?” Any operation that does not belong to the core system contract is arbitrary data. If you don’t want to only interact with the system contract, you need to enable this feature.

Expert tips

When you are updating your ledger device, you may need to re-enable this feature. So if you encounter this error again, please check if you need to enable it. Error 4: “Irrelevant authority” (irrelevant authority)

updateauth action declares irrelevant authority '{"actor": "testaccount1", "permission": "active"}'; minimum authority is {"actor": "testaccount1", "permission": "owner"}

Translation: updateauth (permission update) operation found irrelevant permissions ‘{“actor”: “testaccount1”, “permission”: “active”}’; minimum required permissions are {“actor”: “testaccount1”, “permission”: “owner”} This error may appear when you try to change the owner permissions of the account. If you want to change your owner key, the original owner’s permission is required. If you do not specify the selection permission, the wallet usually uses the active (active) permission to sign the transaction by default, which cannot meet the execution requirements.

In fact, account permissions can be imagined as a tree structure. The top-level parent permission can control all the child permissions below, and each level of permissions below can control other permissions below them.

Solution: make sure to use the correct permissions

No matter which wallet you use, make sure to sign the corresponding operation with the correct key. The owner has the highest level and can control all permissions under it.

Expert tips

Keep your owner ’s key secure at all times, and try to use active and low-level keys to authorize operations. In this case, if your key is stolen, you can also use the owner key to restore your control of the account Error 5: “Block Producer voting” (BP node voting)

Transaction failed-producer is not currently registered

Translation: Transaction failed-node is not currently registered

Some users may set a vote on a node once and stop thinking about it. At this time, we need to check whether the voted node is still registered. If you encounter this error, it means that a node you support has canceled their node business.

Solution: Make sure the business of the node is still running

You can check the status of the nodes you support on many block browsers. If the business of the node you voted for has stopped, you can choose to vote for other nodes.

Expert tips

There is also a situation where the node’s infrastructure has encountered a problem and needs to be temporarily logged out to repair it. Before you re-examine your 30 node votes, you can wait a few hours to re-vote to see if the error message appears again. Error 6: “Custom account names”

Assertion failure with message: only suffix may create this account

Translation: Assertion failed with message: Only suffix can create this account

The EOSIO chain has the concept of a namespace auction, allowing users to have beautiful numbers of less than 12 characters. Users can then use this namespace to create “subdomain” accounts. For example, if you take the account of com, you have the ownership of the suffix .com, and you can create accounts such as 123.com and crypto.com. If you create a custom account name without a corresponding namespace, you will encounter this error.

Solution: photograph the corresponding namespace

You need to win the auction to get ownership of the namespace. Namespace auctions are closed at most every 24 hours. Only during the entire 24 hour period, the highest bidder in all namespaces will get the namespace that he bids on. You can read this article to learn more about the namespace auction system.

Expert tips

You can also use some services on the market to buy it directly from the person who took the namespace. Error 7: “Account has insufficient RAM”

Transaction failed-Account using more than allotted RAM usage, account testaccount1 has insufficient ram; needs 4468 bytes has 4382 bytes.

Translation: The transaction failed-the RAM that the account is about to use exceeds the allocated usage, and the account testaccount1 has insufficient ram; it requires 4468 bytes, but only 4382 bytes.

One of the three resources on the EOSIO chain is RAM, which is used to store account data for a long time. And because it stores data for a long time, the account needs to buy it, not obtain it through collateral.

Solution: buy more RAM

If you encounter this error, just buy enough RAM to meet the transaction needs. General wallets have related functions.

Expert tips

Even if you trade all the tokens on your account, the RAM occupied by that token has not been released. If you want to release the corresponding RAM, you need to first check whether there is a close operation in the token contract. After calling the close operation, the corresponding RAM will be released. Solve more errors

Total
0
Shares
Leave a Reply
Related Posts

what it is and how to calculate it

most important Risk-reward ratio is a coefficient designed to calculate the potential profitability of a trade relative to the inherent risk, taking into account the trader’s strategy. RR will let you know if the trade is profitable or not. Risk/reward ratio is…
Read More