What are you trying to do?
Subject: Bug Report: Prover Node stuck on replacement transaction underpriced during L1 Tx cancellation (viem@2.38.2)Hi Aztec Devs,I am running an Aztec Prover Node (version 4.3.0) connected to a custom Sepolia L1 RPC node. The prover node regularly gets stuck and crashes when an L1 transaction times out.The issue:When submitEpochProof times out after txTimeoutMs, l1-tx-utils attempts to send a cancellation transaction with the same nonce. However, the L1 RPC rejects it with:InvalidInputRpcError: Missing or invalid parameters. Details: replacement transaction underpricedRoot cause:The internal version of viem@2.38.2 used by the node does not correctly bump the maxPriorityFeePerGas (or leaves it at 0) for EIP-1559 transactions during replacement/cancellation. Because of this, custom Geth/Nethermind nodes strictly reject the replacement transaction according to pool pricing rules.Furthermore, attempts to override this behavior using standard env variables like L1_GAS_PRICE_BUMP_PERCENTAGE, L1_MIN_PRIORITY_FEE_PER_GAS, or GAS_PRICE_MULTIPLIER seem to be ignored by this version's l1-tx-utils config parser.Could you please look into how viem handles fee bumping for transaction cancellations in EIP-1559 networks?Thank you!
Logs
Details: replacement transaction underpriced
Version: viem@2.38.2
at formatViemError (file:///usr/src/yarn-project/ethereum/dest/utils.js:165:16)
...
[19:52:37.741] ERROR: prover:l1-tx-utils Failed to send cancellation for timed out tx...
Code Reference
Error logs from l1-tx-utils during epoch proof submission:
Details: replacement transaction underpriced
Version: viem@2.38.2
at formatViemError (file:///usr/src/yarn-project/ethereum/dest/utils.js:165:16)
at L1TxUtils.monitorTransaction (file:///usr/src/yarn-project/ethereum/dest/l1_tx_utils/l1_tx_utils.js:433:35)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
at async L1TxUtils.sendAndMonitorTransaction (file:///usr/src/yarn-project/ethereum/dest/l1_tx_utils/l1_tx_utils.js:518:25)
[19:52:37.741] ERROR: prover:l1-tx-utils Failed to send cancellation for timed out tx 0x3aafb22875e6863394f784abc9f001ecae6700d326efaa09ab4e3d95c92a2224 with nonce 13: InvalidInputRpcError: Missing or invalid parameters
Update: The issue repeated exactly the same way in the very next epoch (3001) on nonce 14:
Details: replacement transaction underpriced
Version: viem@2.38.2
at formatViemError (file:///usr/src/yarn-project/ethereum/dest/utils.js:165:16)
[20:23:49.336] ERROR: prover:l1-tx-utils Failed to send cancellation for timed out tx 0xe18391a437bb29a860a78472278eb70deb5aa8ea97199a702fd357689eeef4c4 with nonce 14
Aztec Version
testnet - Image aztecprotocol/aztec:4.3.0
OS
No response
Browser (if relevant)
No response
Node Version
No response
Additional Context
No response
What are you trying to do?
Subject: Bug Report: Prover Node stuck on replacement transaction underpriced during L1 Tx cancellation (viem@2.38.2)Hi Aztec Devs,I am running an Aztec Prover Node (version 4.3.0) connected to a custom Sepolia L1 RPC node. The prover node regularly gets stuck and crashes when an L1 transaction times out.The issue:When submitEpochProof times out after txTimeoutMs, l1-tx-utils attempts to send a cancellation transaction with the same nonce. However, the L1 RPC rejects it with:InvalidInputRpcError: Missing or invalid parameters. Details: replacement transaction underpricedRoot cause:The internal version of viem@2.38.2 used by the node does not correctly bump the maxPriorityFeePerGas (or leaves it at 0) for EIP-1559 transactions during replacement/cancellation. Because of this, custom Geth/Nethermind nodes strictly reject the replacement transaction according to pool pricing rules.Furthermore, attempts to override this behavior using standard env variables like L1_GAS_PRICE_BUMP_PERCENTAGE, L1_MIN_PRIORITY_FEE_PER_GAS, or GAS_PRICE_MULTIPLIER seem to be ignored by this version's l1-tx-utils config parser.Could you please look into how viem handles fee bumping for transaction cancellations in EIP-1559 networks?Thank you!
Logs
Details: replacement transaction underpriced
Version: viem@2.38.2
at formatViemError (file:///usr/src/yarn-project/ethereum/dest/utils.js:165:16)
...
[19:52:37.741] ERROR: prover:l1-tx-utils Failed to send cancellation for timed out tx...
Code Reference
Error logs from l1-tx-utils during epoch proof submission:
Details: replacement transaction underpriced
Version: viem@2.38.2
at formatViemError (file:///usr/src/yarn-project/ethereum/dest/utils.js:165:16)
at L1TxUtils.monitorTransaction (file:///usr/src/yarn-project/ethereum/dest/l1_tx_utils/l1_tx_utils.js:433:35)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
at async L1TxUtils.sendAndMonitorTransaction (file:///usr/src/yarn-project/ethereum/dest/l1_tx_utils/l1_tx_utils.js:518:25)
[19:52:37.741] ERROR: prover:l1-tx-utils Failed to send cancellation for timed out tx 0x3aafb22875e6863394f784abc9f001ecae6700d326efaa09ab4e3d95c92a2224 with nonce 13: InvalidInputRpcError: Missing or invalid parameters
Update: The issue repeated exactly the same way in the very next epoch (3001) on nonce 14:
Details: replacement transaction underpriced
Version: viem@2.38.2
at formatViemError (file:///usr/src/yarn-project/ethereum/dest/utils.js:165:16)
[20:23:49.336] ERROR: prover:l1-tx-utils Failed to send cancellation for timed out tx 0xe18391a437bb29a860a78472278eb70deb5aa8ea97199a702fd357689eeef4c4 with nonce 14
Aztec Version
testnet - Image aztecprotocol/aztec:4.3.0
OS
No response
Browser (if relevant)
No response
Node Version
No response
Additional Context
No response