Roll back a node update
Rollback installs the Rusk and Rusk Wallet versions pinned by an older node-installer release. Use it only when that software still supports the active network.
Before rollback
Section titled “Before rollback”Record the current state and preserve intentional configuration:
ruskquery versionruskquery info | jq '{version, chain_id, kadcast_address}'ruskquery peersruskquery block-heightsystemctl is-active ruskConfirm that the failure is caused by the installed release. A stalled or corrupt state normally requires re-sync, not older software.
Rollback regenerates the same managed files as an upgrade, including rusk.toml and the systemd unit. It preserves consensus keys, protected service environment files, and chain state, but it does not restore an older database snapshot.
Install a pinned release
Section titled “Install a pinned release”Set the node-installer release approved for rollback:
INSTALLER_VERSION="vX.Y.Z"Use the command matching the node’s existing network and role. The installer stages and verifies downloads before stopping Rusk, so do not stop the service first.
Mainnet provisioner or full node
Section titled “Mainnet provisioner or full node”curl --proto '=https' --tlsv1.2 -sSfL \ "https://github.com/dusk-network/node-installer/releases/download/${INSTALLER_VERSION}/node-installer.sh" \ | sudo bashMainnet archive node
Section titled “Mainnet archive node”curl --proto '=https' --tlsv1.2 -sSfL \ "https://github.com/dusk-network/node-installer/releases/download/${INSTALLER_VERSION}/node-installer.sh" \ | sudo bash -s -- --feature archiveTestnet provisioner or full node
Section titled “Testnet provisioner or full node”curl --proto '=https' --tlsv1.2 -sSfL \ "https://github.com/dusk-network/node-installer/releases/download/${INSTALLER_VERSION}/node-installer.sh" \ | sudo bash -s -- --network testnetTestnet archive node
Section titled “Testnet archive node”curl --proto '=https' --tlsv1.2 -sSfL \ "https://github.com/dusk-network/node-installer/releases/download/${INSTALLER_VERSION}/node-installer.sh" \ | sudo bash -s -- --network testnet --feature archiveFor direct root automation, append --user <operator-user>.
Restart and verify
Section titled “Restart and verify”Review regenerated configuration and reapply only intentional settings that remain valid for the older release. Then start Rusk:
sudo systemctl start rusksystemctl is-active ruskruskquery info | jq '{version, chain_id, kadcast_address}'ruskquery peersruskquery block-heightsudo tail -n 50 /var/log/rusk.logConfirm that height continues to increase and remains close to the selected network. For an archive, verify required historical queries before returning API traffic.
If the older release cannot open current state or archive data, reinstall the supported current release. Do not repeatedly alternate versions against the same database.