I'm having this strange problem and it may be related to the way my node is configured. I'm making calls to both infura and my own nodes like so:
{'id': 123, 'jsonrpc': '2.0', 'method': 'eth_getTransactionReceipt', 'params': ['0x1234...']}
For this one specific txid, when I make this call to my own node it returns a null:
{"jsonrpc":"2.0","result":null,"id":123}
Yet when I make this same exact call to infura it returns me the valid and correct response. Also, note that I can look this txid up on etherscan and see that it was mined in successfully days ago. I'm certain that my node is working because I'm making all sorts of other calls to it, eth_call, eth_getBalance, etc. I seem to only have this problem with eth_getTransactionReceipt. Also, note that I can plug in other random txids and make this call to my node and it will return me valid data. This only happens for this one specific txid and a few others. There must be some pattern to which txids work and which do not...
So there seems to be something wrong with my node or my node's configuration. Any ideas what the problem maybe?
I'm launching my parity node like so
parity --jsonrpc-apis web3,eth,pubsub,net,parity,parity_pubsub,traces,rpc,secretstore,shh,shh_pubsub --jsonrpc-interface=<ipaddress> --jsonrpc-hosts=all
My node is synced and when I call eth_blockNumber i'm getting the latest block
Edit:
I'm also seeing this issue when I use python ethereum via this call:
url = 'https://mainnet.infura.io/......' // This always works for every txhash
url = 'http://urlToMyParityNode:8545' // This always works for some txhashes and always doesn't work for some txhashes
w3 = Web3(HTTPProvider(url))
tx_receipt = w3.eth.getTransactionReceipt("0xTxId")
But when I use either infura or auto, it works just fine. There must be something wrong with my node configuration, or I cannot use a light node. I wonder if auto only detects full nodes and does not consider light nodes.
tx_receipt = w3.eth.getTransactionReceipt("0xTxId")