Error "SafeERC20: low-level call failed" when trying to liquidate certain users


Hello fellow developers, I'm currently trying to execute Aave liquidations transaction for some users that have a HF < 1, but I'm running into issues with users that are impossible to liquidate. All liquidations involve `renFIL `as the debt token. The users that causing problems are: - 0x1386e0c6ed076b96def5313aa1ab51e5e7f00355 - 0x00324d6fdbaa17b1a5256f396319d513aefbbacf - 0x7ffe5d8396267b6bfd2c0151dd9df77ce98efced Specifically, when I try to execute the liquidation, it fails on gas estimation with the following error: > Error: VM Exception while processing transaction: reverted with reason string 'SafeERC20: low-level call failed', data: Some(Object {"data": String("0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000205361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564"), "message": String("Error: VM Exception while processing transaction: reverted with reason string 'SafeERC20: low-level call failed'")}) Can anyone provide any insights or suggestions on how I can address this issue? I would greatly appreciate your help in understanding this problem. Thank you in advance for any assistance you can provide!

Answers 1

You can try simulating in [tenderly](, or if you send the to and from address of the transaction we can try to help debug as well.

  • P.S. The transaction didn't hit the mempool, but fails on gas estimation. Noticed it fails on the aToken contract (aRENFIL: 0x514cd6756CCBe28772d4Cb81bC3156BA9d1744aa) when requesting the aave flashloan for renFIL. So it's not the liquidationCall to fail, but the AAVE V2 FlashLoanLogicat line 95: It invokes the aToken function transferUnderlyingTo that fails at line 164 of AToken.sol: IERC20(_underlyingAsset).safeTransfer(target, amount);