Several error messages come with the default 200 HTTP status code, indicating success, although the request did not complete normally. Besides adding more semantics, this is also more friendly with services and AJAX calls.
- access denied -> 403 Forbidden
- document locked -> 423 Locked
- invalid action on non-existing document -> 404 Not Found
- invalid action on wrong document -> 400 Bad Request
- invalid target for copy and rename -> 409 Conflict
- template does not exist -> 400 Bad Request