Transactions lost

Hi,

Since Saturday we are having some transactions that are lost, they never appear as pending in sites like etherscan, and they are not found.
We obtain the transaction hash after eth_sendRawTransaction with no errors, but when ask for confirmation, recipe, or checking in etherscan it is not found. It happens sometimes, not always.

Perhaps it is related to this improvement infura has made https://status.infura.io/incidents/zl24f5h2sh82, because the date match with the init of problems, I dont know.

Hi @seb_ss - welcome to the Infura community! Have you experienced this happening since Friday?

Hi @Leiya_Kenney

We started to detect problems on Friday 23:20 UTC -03:00

Since that date, we had 10 transactions lost.

Some transaction lost are:
0xa6657f50f6525ab63ab8c43200bf38ae4491d566892eeaae3882d19163a84583
0xb22fb333e0be037247f26f8698ecfdc04b5292997535b1a7d0c7149b43811a7f
0x0bd9c0401f1443122bedcc4b40fc1e967a58861ca2c4b232d4db9a4254a23b5a

Hi @seb_ss,

Can you provide more details of these transactions? If you can provide the hashes of some transactions that did go through that are similar to the ones that didn’t, and the details included in the failing transactions (gas price, nonce, etc.) we can perhaps help pin point the cause.

Hi @Ryan_Schneider

Here I have some extra data from logs.

 "trx"  :  "0x0adff63829c77a311762f6becf17d16f9c265beb4dfb9208beeef86ae6198b82" ,
 "from"  :  "0xE3a97c2E93F45DDd3aB3462F3ad8F03960cA5778" ,
 "contract_address": "0xdac17f958d2ee523a2206206994597c13d831ec7"
 "gas_limit"  :  60000 ,
 "gas_price"  :  "50.4" ,
 "gas_price_units"  :  "50400000000" ,
 "nonce"  :  822 ,
 "time"  :  "2020-10-14T00:46:00Z"

@seb_ss,

I see a different tx with nonce 822 from that account at the same time: https://etherscan.io/tx/0x3cb8acdffebfce9fabab7891afecc0db7e5059dca72f24e7f03eacfcd7e75ac3 Is it possible you are posting multiple transactions with the same “future” nonce?

For example, if you current nonce is 100, and you post two different transactions w/ nonce 102, then “fill the gap” with nonce 101, only one of the nonce 102 transactions can ever be mined.

Meanwhile, again if your nonce is 100, and you send two different nonce 101, the 2nd transaction will be considered a “replacement” transaction and will overwrite the second transaction has a higher “gas price” than the first. However, in this case I don’t think that’s what happened since both transactions seem to have the same gas price.

In short, my suggestion is that you keep a record of the nonce of every transaction you send, and double check that each transaction has a nonce 1 higher than the previous and that you don’t introduce any duplicate nonces or nonce gaps. If the issue happens again and you have the record of all nonces used, the parameters of the transactions, and the resultant tx hash it should be easier to debug the root cause.

Hope this help!

2 Likes

Hi @Ryan_Schneider

Thank you for explain me in detail the problem.
I can clearly see the problem now.
I am going to increment the nonce when I had multiple tx to deliver in sequence for the same addr. To avoid nonce collisions.

But there is still something I dont understand, because we were using the method eth_getTransactionCount with Block Parameter = pending to get the following nonce to use:
"pending" - String: The currently mined block (including pending transactions)
Does this pending count the others pendings tx?