Relay sets a high gas limit (e.g 24000000 for transactions on BSC chain) to invoke handleRelayMessage on a batch of messages. For BSC chain, there is a cap to the maximum value that product of gas price and gas limit can have for a transaction and the cap is 1 ether. So for the current gas limit, maximum gas price that can be set becomes 1e18/24000000 => 41666666666.666664. If relay uses a gas price higher than this, transaction will not succeed. Since relay keeps retrying this same values and cannot succeed, the relay becomes stuck
Overview
Relay sets a high gas limit (e.g 24000000 for transactions on BSC chain) to invoke handleRelayMessage on a batch of messages. For BSC chain, there is a cap to the maximum value that product of gas price and gas limit can have for a transaction and the cap is 1 ether. So for the current gas limit, maximum gas price that can be set becomes 1e18/24000000 => 41666666666.666664. If relay uses a gas price higher than this, transaction will not succeed. Since relay keeps retrying this same values and cannot succeed, the relay becomes stuck
Transaction with 54 Gwei as Gas Price https://testnet.bscscan.com/tx/0x893e5deb0beef82aa0741e6927b1fafb5cc53a5f108112baa33e2bcb3cfcd8b7
Median Gas price on the block is 54 Gwei
BMR Logs
Steps to Reproduce
Steps to reproduce the behavior:
Expected Behavior
Relay operation should not get stuck.
Additional Context
The issue was seen on privately deployed testnet.