Replies: 6 comments
-
What network are you using? Can you pass along the contract, gas price, gas limit, etc. you are using? Can you also do a The default provider on |
Beta Was this translation helpful? Give feedback.
-
Network: 'rinkeby'.
Since i'm just doing
See the transactions at in the above contract link. When they make it out the door, which is often, they succeed (except when I am testing things that should trigger a revert). For instance, I just ran 224 sequential transactions all the same except the from address which is randomly pulled from a pool of adequately funded (I checked) accounts, and the actual contract arguments, which are all valid. If they weren't and that was the cause, I would see a reverted transaction in the log. I don't. The address it was coming from didn't send one, and the contract never received one.
I'm not using |
Beta Was this translation helpful? Give feedback.
-
@cliffhall I'm having the same issue - did you manage to fix yours? |
Beta Was this translation helpful? Give feedback.
-
@Marijus I never got it sorted. It remained the case that sometimes it just fails. I built the system around it to timeout and retry after a reasonable period. |
Beta Was this translation helpful? Give feedback.
-
I am having a very similar issue on Binance Smart Chain Mainnet. Sometimes ethers can hang on a state changing transaction and sometimes on a call as simple as What would be a way to debug if this is an ethers.js issue or a network/provider issue? |
Beta Was this translation helpful? Give feedback.
-
Yes, internally all transactions must occur over sendTransaction. Method calls just handle the binary coding for you. There should be no difference between a method call and sendTransaction at the end of the day. If the network is unavailable, then it should fail immediately and retry. Which backend are you using? INFURA? Are you using your own api keys? It sounds like a backend has hung up on you, but without closing its half of the pipe. This could also be a proxy issue, if you are using a proxy or load balancer. If you use a FallbackProvider for sending transactions, it will multicast your transaction on all of them and return the moment any one of them accepts it, which probably something that would help you as you can use your own node and publicly available backends to make sure your transaction gets to the network and things keep on trucking. :) (moving to discussions) |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The scenario, running in a Node service, is essentially this:
This works the bulk of the time, and everything's rosey. But often enough it hangs trying to create the transaction, and that holds up the entire works in my app.
I need a way to tell this thing to give up or fail over sooner. I'm not certain how it goes about getting the transaction out the door, if it tries Infura first, then gives up and uses Etherscan after 15 minutes or what, but it can take 30 minutes to timeout.
In the log screenshot above, the process logs that it's 'minting at gas price x', then the
catch
clause of thetry/catch
has been invoked, logging the 'tx end updated' message and finally the error message, which was 'timeout', about 30 minutes after the attempt to call the contract function.How can I get this under control? I see no options for setting a timeout on the contract call itself.
Beta Was this translation helpful? Give feedback.
All reactions