This page offers some troubleshooting advice for Lotus nodes by listing some of the most common errors that users can come accross.

Build errors

Please check the build logs closely. If you have a dirty state in your git branch make sure to do something like:

git checkout <desired_branch>
git reset origin/<desired_branch> --hard
make clean

(or directly delete and clone the repository again as shown in the installation instructions.

Slow builds/start from China

See the tips when running in China guide.

Error: initializing node error: cbor input had wrong number of fields

This happens when you are starting Lotus which has been compiled for one network, but it encounters data in the Lotus data folder which is for a different network, or for an older incompatible version.

Solution: follow the instructions for switching networks closely.

Error: Failed to connect bootstrap peer

WARN  peermgr peermgr/peermgr.go:131  failed to connect to bootstrap peer: failed to dial : all dials failed
  * [/ip4/] failed to negotiate security protocol: connected to wrong peer

Try running the build steps again and make sure that you have the latest code from GitHub.

Error: repo is already locked

You already have another lotus daemon running. Stop it first (lotus daemon stop).

Config: Open files limit

Lotus will attempt to set up the file descriptor (FD) limit automatically. If that does not work, you can still configure your system to allow higher than the default values.

The specific instructions depend on your system and how you are running Lotus (with systemd or not etc). Please use a search engine to find instructions as there are plenty of very good guides.

Error: Routing: not found

WARN  main  lotus/main.go:72  routing: not found

This error means that the miner you are trying to talk to is offline.

RPC Error: request bigger than maximum

ERROR	rpc	go-jsonrpc/server.go:90	RPC Error: request bigger than maximum 104857600 allowed

There is a maximum request size for security reasons in case the RPC server is exposed to external requests. The default is 100 MiB, but that can be adjusted with the api-max-req-size CLI argument of the respective CLI command that started the server. In case the command does not have the CLI argument to adjust this, please submit an issue requesting it.

Signal killed

If you get a signal killed error, it could indcate that there was an error during the build process.

/usr/local/go/pkg/tool/linux_amd64/link: signal: killed
make: *** [Makefile:68: lotus] Error 1

Double check that your computer meets the minimum hardware requirements for Lotus.

Go command not found

You may encounter an error saying that the go command was not found:

sudo make install
bash: go: command not found
expr: syntax error: unexpected argument '14'
install -C ./lotus /usr/local/bin/lotus
install -C ./lotus-miner /usr/local/bin/lotus-miner
install -C ./lotus-worker /usr/local/bin/lotus-worker

You can ignore this error during the sudo make install step; it does not affect the install.

chain linked to block marked previously as bad

This may appear if Lotus is following a bad fork. The solution is to:

  • unmark all bad blocks
  • reset the head to a known good epoch
lotus sync unmark-bad --all
lotus chain sethead --epoch <epochNumber>

Edit this page on GitHub