Bug report
Smartnode version: v1.20.3
OS: Linux (Debian)
Execution client: Reth v2.2.0
Consensus client: Nimbus v26.5.0
Description
The Node Collector is repeatedly logging the following error, causing all rocketpool_node_* metrics to be absent from the Prometheus metrics endpoint at :9103/metrics:
[Node Collector] Error calculating megapool rewards: error calculating the rewards for amount -1046000000000000000000: abi: negatively-signed value cannot be packed into uint parameter
All node-specific metrics (bond amounts, RPL stake, minipool/megapool status, etc.) are absent.
Expected behavior
The Node Collector should either handle negative intermediate reward values gracefully (clamping to zero or skipping the metric) rather than aborting the entire node metrics collection cycle.
Actual behavior
An ABI encoding error is thrown when a negative value (-1046000000000000000000) is passed to a function expecting a uint parameter. This causes the full node metrics collection to fail silently, resulting in blank Grafana dashboard panels for all node-specific statistics.
Steps to reproduce
- Run smartnode v1.20.3 with an active megapool node
- Observe Node Collector logs:
docker logs rocketpool_node 2>&1 | grep "Error calculating megapool rewards"
- Inside Prometheus, all
rocketpool_node_* return "empty query"
Additional context
The negative value -1046000000000000000000 (~-1046 ETH in wei) suggests a potential underflow or signed/unsigned mismatch in the megapool reward calculation logic. Network-wide metrics (rocketpool_supply_*, rocketpool_performance_*, etc.) are unaffected and return normally.
Please excuse Claude's wordiness, it consolidated some of my troubleshooting data. All containers healthy, wallet initialized, node fully synced. I'm unsure when it started occurring, I only noticed after updating to v1.20.3. Is this bad data from eth1?
Bug report
Smartnode version: v1.20.3
OS: Linux (Debian)
Execution client: Reth v2.2.0
Consensus client: Nimbus v26.5.0
Description
The Node Collector is repeatedly logging the following error, causing all
rocketpool_node_*metrics to be absent from the Prometheus metrics endpoint at:9103/metrics:All node-specific metrics (bond amounts, RPL stake, minipool/megapool status, etc.) are absent.
Expected behavior
The Node Collector should either handle negative intermediate reward values gracefully (clamping to zero or skipping the metric) rather than aborting the entire node metrics collection cycle.
Actual behavior
An ABI encoding error is thrown when a negative value (
-1046000000000000000000) is passed to a function expecting auintparameter. This causes the full node metrics collection to fail silently, resulting in blank Grafana dashboard panels for all node-specific statistics.Steps to reproduce
docker logs rocketpool_node 2>&1 | grep "Error calculating megapool rewards"rocketpool_node_*return "empty query"Additional context
The negative value
-1046000000000000000000(~-1046 ETH in wei) suggests a potential underflow or signed/unsigned mismatch in the megapool reward calculation logic. Network-wide metrics (rocketpool_supply_*,rocketpool_performance_*, etc.) are unaffected and return normally.Please excuse Claude's wordiness, it consolidated some of my troubleshooting data. All containers healthy, wallet initialized, node fully synced. I'm unsure when it started occurring, I only noticed after updating to v1.20.3. Is this bad data from eth1?