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);