Skip to content

Troubleshooting

Thomas edited this page Mar 27, 2018 · 8 revisions

Troubleshooting Common Issues

Identifying Error Messages

When the node fails to start successfully, you will see a few messages displayed in the output, the first will be rather short, and is informational, and the second is usually a fatal message, which is very long.

The first message typically looks like this:

{"level":"info","ts":1520107660.567211,"caller":"logger/logger.go:71","msg":
"Starting Chainlink Node 0.2.0 at commit 2625bd46153d40631bb4140e5fada800064b273d"}

The second message is what contains the error that caused the failure. Look for the value of "msg" to see what went wrong. This is what we'll be using to identify issues in this guide.

{"level":"fatal","ts":1520107489.8099728,"caller":"logger/logger.go:119","msg":
"dial tcp [::1]:8546: getsockopt: connection refused","stacktrace":"github.com/
smartcontractkit/chainlink/logger.Fatal...

From the above, we see the error was "dial tcp [::1]:8546: getsockopt: connection refused".

dial tcp [::1]:8546: getsockopt: connection refused

Problem

Seeing the "connection refused" in this error let's us know that the node is trying to establish a connection to another entity. Since the port is 8546, we can tell that it's trying to make a websocket connection to an Ethereum client, and ::1 just tells us it's listening on IPv6.

Solution

We need to ensure that an Ethereum client is accessible and is running with the websocket functionality enabled. For Geth, that can be referenced here, and for Parity, here. Typically, you want to make note of the address and port that the websocket-enabled client is listening on, and use those values for setting the ETH_URL environment variable. For example, export ETH_URL=ws://127.0.0.1:8546 could be used if the Ethereum client is running on the same machine as the ChainLink node.

Error in new head subscription

Problem

The ChainLink node lost the connection to the Ethereum client.

Solution

Bring the Ethereum client back online and the node should reconnect automatically.

open /home/user/.chainlink/db.bolt: permission denied

Problem

The Chainlink node tried to create or use a file (in this case, db.bolt) that it does not have permission to.

Solution

Ensure that the user running the Chainlink node has access to the location set by the ROOT environment variable (default /.chainlink).

use of internal package not allowed

Problem

If you forked the ChainLink project to your own repository, cloned, then ran dep ensure, you'll see this message when running tests via go test ./....

Solution

In order for tests to correctly run for your local development, you'll need to clone our repository and set up your forked repository as a remote.