Skip to main content
mxnode emits structured 3-line errors for everything operator-actionable: a one-line summary, the underlying cause, and the next step.

Error shape

JSON form (with --json):

Stale inflight.toml (auto-clears)

When a crashed mxnode upgrade leaves an inflight.toml behind, the next mxnode upgrade invocation classifies the recorded pid. If the pid is dead, the file is cleared and the upgrade proceeds; the operator only sees a one-line stderr notice:
The recovery procedure is therefore “rerun the upgrade” — every per-node step is idempotent, so steps that already ran become no-ops. The only refusal is when the recorded pid is still alive:

Go toolchain too old

mx-chain-go’s go.mod floor is currently 1.22. mxnode auto-upgrades when /usr/local/go/ was put there by mxnode itself (marker file /usr/local/go/.mxnode-managed). When the existing Go came from another channel, mxnode refuses to clobber it:
Upgrade through the same channel you used to install Go: After upgrading, re-run mxnode install or mxnode upgrade.

Missing validator keys

Drop the missing zips and re-run mxnode start --node 1. For observer / multikey installs, keys check is a no-op.

Multikey install can’t find allValidatorsKeys.pem

Either drop the file at the auto-detected path, or pass --keys-file explicitly.

P2P port collision

mx-chain-go uses TCP 37373..38383. If doctor reports:
something else is holding the port. Find the offender:
Most common cause: another mxnode install on the same host without cleanup first. Firewall block (port not yet open):

Auto-init failed to detect user / home

Happens under systemd-run or other contexts where $HOME is unset:

Node fails to start after upgrade

Out-of-sync after long downtime

If a node fell far behind (days, not minutes), reseeding is faster than catching up via P2P:

GitHub rate limit

Tag resolution hits the GitHub API. Unauthenticated, 60 requests/hour per IP.
Set a personal access token (no scopes needed):
The token isn’t logged or written to disk — it lives only in the env.

Diagnostic dump for support

When opening an issue:
These are sandbox-safe (no keys, no tokens) and give a full picture of the host’s state.