diff --git a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportStartDatafeedAction.java b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportStartDatafeedAction.java index 6fb9f42795209..66a96ef93223b 100644 --- a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportStartDatafeedAction.java +++ b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportStartDatafeedAction.java @@ -223,6 +223,19 @@ public void onFailure(Exception e) { Consumer createDataExtractor = job -> { final List remoteIndices = RemoteClusterLicenseChecker.remoteIndices(params.getDatafeedIndices()); if (remoteIndices.isEmpty() == false) { + if (remoteClusterClient == false) { + responseHeaderPreservingListener.onFailure( + ExceptionsHelper.badRequestException( + Messages.getMessage( + Messages.DATAFEED_NEEDS_REMOTE_CLUSTER_SEARCH, + datafeedConfigHolder.get().getId(), + RemoteClusterLicenseChecker.remoteIndices(datafeedConfigHolder.get().getIndices()), + clusterService.getNodeName() + ) + ) + ); + } + final RemoteClusterLicenseChecker remoteClusterLicenseChecker = new RemoteClusterLicenseChecker( client, MachineLearningField.ML_API_FEATURE @@ -235,17 +248,6 @@ public void onFailure(Exception e) { ActionListener.wrap(response -> { if (response.isSuccess() == false) { responseHeaderPreservingListener.onFailure(createUnlicensedError(params.getDatafeedId(), response)); - } else if (remoteClusterClient == false) { - responseHeaderPreservingListener.onFailure( - ExceptionsHelper.badRequestException( - Messages.getMessage( - Messages.DATAFEED_NEEDS_REMOTE_CLUSTER_SEARCH, - datafeedConfigHolder.get().getId(), - RemoteClusterLicenseChecker.remoteIndices(datafeedConfigHolder.get().getIndices()), - clusterService.getNodeName() - ) - ) - ); } else { final RemoteClusterService remoteClusterService = transportService.getRemoteClusterService(); List remoteAliases = RemoteClusterLicenseChecker.remoteClusterAliases(