docs: <T> T deserialize(String body, TypeReference<T> typeRef) {
          if (body == null || body.isEmpty()) {
              throw new ServiceException(ErrorCode.REMOTE_DIRECTORY_SERVER_ERROR,
                      ErrorCode.REMOTE_DIRECTORY_SERVER_ERROR
                              .getMessageTemplate(), "the message body is empty");
  
          }
  
          try {
              return JsonSerializer.deserialize(body.getBytes(), typeRef);
          } catch (Exception e) {
              throw new ServiceException(ErrorCode.REMOTE_DIRECTORY_SERVER_ERROR, e,
                      ErrorCode.REMOTE_DIRECTORY_SERVER_ERROR.getMessageTemplate(),
                      "unrecognized message, deserialize failed.");
          }
      }