Unexpected timeout on transaction

Hi everyone.

We’ve experienced a strange behavior that we assume to be a bug.

The problem happened yesterday, 07th of May 2019, at 13:45 CET, using a valid API key for Rinkeby Testnet.

Here a brief description of the issue:

Our application use Web3J and Infura to interact with the Ethereum blockachain. The application was sending a raw transaction and, during the polling phase that wait for the transaction receipt, an exception has been raised.
Inspecting the application’s log we noticed an unexpected timeout and, despite the error, we can see the transaction on Etherscan and it’s confirmed. This means that the transaction has been regularly processed in Ethereum but, for an unknown reason, a timeout happened and no transaction receipt has been returned.

Follows an excerpt of the log.

org.web3j.protocol.exceptions.TransactionException: Error processing request: request failed or timed out
	at org.web3j.tx.response.TransactionReceiptProcessor.sendTransactionReceiptRequest(TransactionReceiptProcessor.java:32)
	at org.web3j.tx.response.PollingTransactionReceiptProcessor.getTransactionReceipt(PollingTransactionReceiptProcessor.java:37)
	at org.web3j.tx.response.PollingTransactionReceiptProcessor.waitForTransactionReceipt(PollingTransactionReceiptProcessor.java:29)
	at org.web3j.tx.TransactionManager.processResponse(TransactionManager.java:72)
	at org.web3j.tx.TransactionManager.executeTransaction(TransactionManager.java:51)
	at org.web3j.tx.ManagedTransaction.send(ManagedTransaction.java:87)
	at org.web3j.tx.Contract.executeTransaction(Contract.java:284)
	at org.web3j.tx.Contract.executeTransaction(Contract.java:268)
	at org.web3j.tx.Contract.executeTransaction(Contract.java:262)

The strangest part of this is that the timeout happend after a really short amount of time (about 500ms) and, for clarity, we have configured our HTTP client in order to raise a timeout exception only for much, much longer waiting time. Please note also that no connectivity problems have been registered on our side.
We’re also excluding a fault of Web3J library because the application send raw transactions on a daily, regular base without any issue.

So my questions are:

  • Is it a bug/issue related to some network/infrastructure issue on Infura side?
  • If the answer to previous question is yes, is it predictable or, at least, avoidable in any way?
  • Regarding a similar problem faced in the past (Missing TX hash in TX receipt when a contract is deployed), are there any news related on the post’s mentioned feature?

Hope that everything is clear, otherwise feel free to ask for clarifications, any help/suggestions are really appreciated.

Thank you for your time.

Thanks for the detail in your report @marco.

  • Is it a bug/issue related to some network/infrastructure issue on Infura side?

There were no service degradations on our side during the time you mention and we wouldn’t time out a transaction request after such a short duration. Are you able to capture the error/response that was returned by our API if this is still occurring?

The update to our architecture described in the post you referenced is still under development. We don’t have a timeline for it reaching production yet but we’ll keep you posted.

Hi @egalano.
Thank you for your reply.

The issue happened only once and, unfortunately, the application wasn’t configured to trace outgoing requests and incoming responses.

By the way, we are trying to engineer a solution in our application that can manage this fault (that, up to now, seems unpredictable).

Also, thank you for the update regarding the future architecture improvement we discussed.

If the problem occurs again I will update the relavant details in this thread.