Error shape
--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:
Go toolchain too old
mx-chain-go’sgo.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:
| Source | How |
|---|---|
| apt | sudo apt install --only-upgrade golang-go (often outdated; consider switching) |
| Homebrew | brew upgrade go |
| asdf | asdf install golang 1.22.12 && asdf global golang 1.22.12 |
| Manual go.dev | sudo rm -rf /usr/local/go && sudo tar -xzf go1.22.12.linux-amd64.tar.gz -C /usr/local |
mxnode install or mxnode upgrade.
Missing validator keys
mxnode start --node 1. For observer / multikey installs, keys check is a no-op.
Multikey install can’t find allValidatorsKeys.pem
--keys-file explicitly.
P2P port collision
mx-chain-go uses TCP37373..38383. If doctor reports:
cleanup first.
Firewall block (port not yet open):
| Distro | Command |
|---|---|
| Ubuntu (ufw) | sudo ufw allow 37373:38383/tcp |
| firewalld | sudo firewall-cmd --permanent --add-port=37373-38383/tcp && sudo firewall-cmd --reload |
| iptables | sudo iptables -A INPUT -p tcp --dport 37373:38383 -j ACCEPT |
Auto-init failed to detect user / home
systemd-run or other contexts where $HOME is unset:
Node fails to start after upgrade
| Symptom | Cause | Fix |
|---|---|---|
panic: open /home/.../config/...: no such file or directory | New tag’s config repo has different filenames | Pass --config-tag <T> matching the binary tag |
cannot start node: shard X not assigned | Squad mapping lost after a manual prefs edit | mxnode reapply-config --restart |
keys file is empty | allValidatorsKeys.pem got truncated during a copy | Restore from your source-of-truth bundle, then re-install |
| Node exits immediately, no log | Wrong CPU flags (rare on ARM hosts) | mxnode auto-clears [HardwareRequirements] CPUFlags on non-x86 — re-run mxnode reapply-config |

