Shaokang's Blog

Common error and solution during running and building connections between EOSIO components:

Error 3050000: Action validate exception
Error Details:
inline action’s authorizing actor eosio.ram does not exist

Solution: Make sure the eosio.ram was created before setting any contracts(eosio.system, eosio.msig). It should also be created before initializing system accounts. Otherwise this error will show up when creating block producer or voter. For more details, see here or here.

Error 3080001: Account using more than allotted RAM usage
Error Details:
account eosio.ram has insufficient ram; needs 2996 bytes has 0 bytes

Solution: Basically, this error happens when some account has insufficient ram. It depends on the account type you are creating.

  • If the account is eosio.***, then it is a system account. If this happens, then make sure the eosio.ram was created before setting any contracts(eosio.system, eosio.msig). It should also be created before initializing system accounts.
  • If the account is an arbitrary name, then it is a user account(producer/worker). If this is the case, the common error is using wrong command to create new account. For account other than system account, it seems it is required to use cleos system newaccount [OPTIONS] creator name OwnerKey [ActiveKey].

Error 3120003: Locked wallet
Ensure that your wallet is unlocked before using it!
Error Details:
You don’t have any unlocked wallet!

Solution: The wallet need to be unlocked before experiment.

Error 3050001: Account name already exists
Error Details:
Cannot create account named bp1111111111, as that name is already taken

Solution: Use another name.

Error 3050003: eosio_assert_message assertion failure
Error Details:
assertion failure with message: cannot use transfer flag if delegating to self

Solution: It seems --transfer tag for self transfer is for some old version of EOSIO. Remove it if error happens. Though the error happens, the command still get executed sometime.

assertion failure with message: system contract must first be initialized

Solution: Make sure eosio.msig is a privileged account and Initialize system account. To do those:

1
2
3
cleos push action eosio setpriv '["eosio.msig", 1]' -p eosio@active

cleos push action eosio init '["0", "4,SYS"]' -p eosio@active

Not producing block because I don’t have the private key for EOS5ks6trFhN8xz5mxaDAwQy7qJdjHhNwQbLca6wkYuRKwvGDUAPG

Solution: This message happens when running the very first node in the network, who will produce the genesis block. Make sure the EOS_PUB_DEV_KEY in signature-provider in genesis_start.sh is the same as the EOS_PUB_DEV_KEY in genesis.json. And EOS_PRIV_DEV_KEY is the private key of this public key. For those two files. genesis_start.sh is a file contain the information for the genesis block. genesis_start.sh is a file to start the very first node in the network. For more details, see here.

 Comments