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.