So, I'm sending a transaction on Ethereum network using Metamask even with a high gas fee but the transactions are failing. I'm transferring ETH from Metamask to another wallet.

What I found strange is, usually the error message on etherscan.io displays:

Fail with error 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT'

But in my case, it is just displaying "Fail" and no additional information.

Another strange thing I observed is, the "Input Data" field of the transaction on etherscan.io is empty.

I would expect the binary data corresponding to the transaction to be present there even if it failed.

It does give a warning message:

" Warning! Error encountered during contract execution [Out of gas] "

But I'm curious why the failed message doesn't have the details and the input data section is also empty.

  • The error messages are contract responsability. Etherscan just shows what the contract generated, if the contract hasn't generated anything it will show a generic error message. The successful transaction has almost 99k as gas limit and the failed one has gas limit to less than 64k. – Ismael Oct 9 '20 at 16:52

You are trying to send ether to a contract, rather that to an Externally Owner Address (EOA). This means that contract's code will executed and the contract will decide whether to accept your transfer and what to do with ether you've sent. As long as your transaction failed and didn't use all the gas you allowed it to use, one of the following probably took place:

  1. Contract intentionally decided to refuse your transfer
  2. There is a bug in the contract, you are sending ether to, or in some other contract this contract is calling, and this bug causes the transaction to fail

To tell more, it is necessary to analyse the code of the contract. Unfortunately, the source code is not published on Etherscan, so only the bytecode is available for analysis, but it is quite hard to analyse bytecode. Do you have source code for this contract?

  • Thanks for detailed response. The address to which I am sending is the ETH wallet address of an exchanger. I have successfully sent to the same address yesterday and it worked. So, the contract you are referring to should be the contract owned by this exchanger. Please let me know if you need more details from me. I am sending from my metamask wallet to the exchanger's wallet address. – Neon Flash Oct 9 '20 at 12:41
  • 1
    You tries to send 4 ether to contract 0xc0e96fa51dc5ab0ec8ed8034d733660f84e12779 and that contract tried to forward these 4 ether to contract [etherscan.io/address/… but that forwarding attempt failed. Neither contract has source code pubilshed. Probably you need to contact support of your exchange. – Mikhail Vladimirov Oct 9 '20 at 12:52
  • I checked with the exchanger and they are saying it is an error from the sender side and not their end. Also, I used the same exchanger address yesterday to send ETH and it worked perfect. Both the sender and receiver wallet are same as yesterday. – Neon Flash Oct 9 '20 at 13:14
  • Interestingly, I was reading this thread on reddit today: reddit.com/r/ethereum/comments/7mwoc8/… And it says, the gas limit was the issue. Apparently, the contract which is accepting the ETH can specify a high gas limit. Is that true? This person resolved the issue by increasing the gas limit. – Neon Flash Oct 9 '20 at 13:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.