Occasionally, transactions can get "stuck" in the pipeline from a source to destination chain (e.g. due to one-off issues that arise with relayers that operate on top of the network).
Transactions have typically gotten "stuck" in the pipeline due to: (A) The transaction failing to relay from the source chain into the Axelar network for processing. (B) The transaction failing to get executed on the destination chain.
Users can recover a transaction that gets stuck in the pipeline by either:
- Searching for the transaction in the Axelarscan UI and having it invoke recovery.
- Incorporating the AxelarJS SDK and invoking those methods directly.
(A) If the transaction failed to relay from the source chain into the Axelar network for processing - (A) above - Axelarscan UI will show that the transaction has not been
APPROVED. It will show an option to "APPROVE" that will manually resubmit a request to the network.
The CALL APPROVED status will be updated once the network approves the transaction.
(B) If the transaction failed to get executed on the destination chain, then Axelarscan will provide the option for you to either:
- Manually execute a transfer on the destination chain, OR
- Increase gas payment to the gas receiver on the source chain.
Click the ‘Connect’ button under the label ‘Execute at destination chain’. Then click the
Execute button. It triggers the executor service to execute the transaction using the new gas paid at the destination chain. You can check the latest execution result in the
Suppose the manual execution fails, you will get an error message with explained reason.
What to do next: We suggest debugging your contract and then making a new call. You can try to follow the Debugging your smart contract guide.
The prepaid gas to the Gas Service contract could be insufficient when the destination chain is too busy (with many transfers or other conditions). Therefore, Axelarscan provides an option to increase gas payment to relay the transaction.
To do this:
- Click the
Connectbutton to connect your MetaMask wallet. Then switch the wallet network to the transfer’s source chain by clicking the
Switch Networkbutton under the label ‘Add gas at source chain‘.
- Click the
Add gasbutton. The new paid gas information will be updated in the
GAS PAIDsection. Then, the call will be relayed and executed.
All of the recovery methods above can be done programmatically through our SDK. The benefit of this would be if you would like to incorporate these recovery features above in your application directly. In fact, Axelarscan makes use of all of these methods written into the SDK.
See SDK docs for the full transaction recovery API.