0
As far as I understand, if you supply a made up TxID to the getrawtransaction RPC API, it should return an error code that suggests the record is not found (i.e. 404 HTTP STATUS CODE?). However, in bitcoin-core 0.12.1 and 0.13.1 it's returning 500-Internal Server Error, as if the node had some problem processing the request.
FYI, I have txindex=1 enabled in this node, so it's not because of the lack of data. Should this be fixed upstream or is it already fixed? Or is there a better reason for why this is the case?
This is the problem I'm mentioning, the error response is not json and has even changed across versions: https://github.com/bitcoin/bitcoin/commit/db904db7e6b87fefecde564dea132ff8614726da thus, one cannot distinguish between an error state of the server and the server claiming that the tx doesn't exist. I disagree that 500 should be thrown here, because 5xx errors are "server errors" and it's not a server error, it's just a normal response. See https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_Server_error , querying about a non-existent transaction is not something "unexpected".
– knocte – 2017-05-18T06:45:29.843404 doesn't mean "method not found" but simply "not found". Method not found would actually be better mapped to 400 "bad request" – knocte – 2017-05-18T06:45:37.830
1) Looks like JSON to me. What do you get? If you want something that usually doesn't change between versions, the JSON error code (the negative number) changes less often than the error message. 2) Hey, I didn't pick the status codes. Just be glad it's not error 418.
– Nick ODell – 2017-05-18T16:06:05.353