private Documents<FindDocument> executeQuery(
      final AciService aciService, final AciParameters aciParameters) {
    QueryResponseData responseData;
    try {
      responseData = aciService.executeAction(aciParameters, queryResponseProcessor);
    } catch (final AciErrorException e) {
      final String errorString = e.getErrorString();
      if (MISSING_RULE_ERROR.equals(errorString) || INVALID_RULE_ERROR.equals(errorString)) {
        aciParameters.remove(QmsActionParams.Blacklist.name());
        responseData = aciService.executeAction(aciParameters, queryResponseProcessor);
      } else {
        throw e;
      }
    }

    final List<Hit> hits = responseData.getHit();
    final List<FindDocument> results = parseQueryHits(hits);
    return new Documents<>(results, responseData.getTotalhits(), null);
  }