API responds with HTTP status code 200 on failed requests

I am sending many parallel queries via API. Some of them fail, with “GC overhead limit exceeded” message in the log file. That is unfortunate but something we must live with. However, those failed requests get a response with status code 200, an empty response string, and no explanation about what happened.
As empty string is not a valid response for these queries (they do have results) I would consider getting a 200 response a bug. Also I would expect to get a message (maybe in the SD-Error-Code header) telling me what happened.

Thank you for considering this issue,
and keep up the good work!


This is an issue we fixed for the upcoming Stardog 5 release. The problem is that the server first sends the 200 response, starts streaming the results and then the error occurs. There is no way to send a different response at that point but in Stardog 5 we will be using HTTP trailers [1] to indicate an error occurred. We will include more information about how this works in our documentation.


[1] https://tools.ietf.org/html/rfc2616#section-14.40

Thank you!
I am looking forward to the new release.