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, this is very incorrect.
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").