I'm wondering if it is correct to return HTTP 200 OK
when an error occurred on the server side (the error details would be contained inside the response body).
Example:
HTTP GET
HTTP 200 OK
status code with error inside a response (e.g. {"status":"some error occurred"}
)Is this the correct behavior or not? Should we change the status code to something else than 200?
No, it's very incorrect to send 200 with a error body
HTTP is an application protocol. 200 implies that the response contains a payload that represents the status of the requested resource. An error message usually is not a representation of that resource.
If something goes wrong while processing GET, the right status code is 4xx ("you messed up") or 5xx ("I messed up").