That may be intended behaviour if we're talking about actual function return value.

What a function returns is about what the client has to say about the matter.
request_ functions however are about communicating with the server (asynchronuously).
What the server, however, has to say about this, will be replied via the onServerErrorEvent and onServerPermissionErrorEvent.
request_ functions have a const char* returnCode parameter.
If it is not used aka nullptr, the event only gets triggered in case of an error.
If it is used, the event gets triggered in any case, with ERROR_ok in case of success.

So in appliance the returned error code ERROR_ok states that, yes, the client sent out the request to the server.
If the server however was ok with that and executed the action is being communicated via the onServerErrorEvent/onServerPermissionErrorEvent + returnCode mechanism.