diff --git a/plugin/src/main/java/org/elasticsearch/xpack/ml/MachineLearningFeatureSet.java b/plugin/src/main/java/org/elasticsearch/xpack/ml/MachineLearningFeatureSet.java index 11df1d24f0c..4711dd6ed33 100644 --- a/plugin/src/main/java/org/elasticsearch/xpack/ml/MachineLearningFeatureSet.java +++ b/plugin/src/main/java/org/elasticsearch/xpack/ml/MachineLearningFeatureSet.java @@ -33,16 +33,19 @@ public class MachineLearningFeatureSet implements XPackFeatureSet { this.enabled = XPackSettings.MACHINE_LEARNING_ENABLED.get(settings); this.licenseState = licenseState; Map nativeCodeInfo = NativeController.UNKNOWN_NATIVE_CODE_INFO; - try { - NativeController nativeController = NativeControllerHolder.getNativeController(settings); - if (nativeController != null) { - nativeCodeInfo = nativeController.getNativeCodeInfo(); - } - } catch (IOException | TimeoutException e) { - Loggers.getLogger(MachineLearningFeatureSet.class).error("Cannot get native code info for Machine Learning", e); - if (enabled) { - throw new ElasticsearchException("Cannot communicate with Machine Learning native code " - + "- please check that you are running on a supported platform"); + // Don't try to get the native code version in the transport client - the controller process won't be running + if (XPackPlugin.transportClientMode(settings) == false) { + try { + NativeController nativeController = NativeControllerHolder.getNativeController(settings); + if (nativeController != null) { + nativeCodeInfo = nativeController.getNativeCodeInfo(); + } + } catch (IOException | TimeoutException e) { + Loggers.getLogger(MachineLearningFeatureSet.class).error("Cannot get native code info for Machine Learning", e); + if (enabled) { + throw new ElasticsearchException("Cannot communicate with Machine Learning native code " + + "- please check that you are running on a supported platform"); + } } } this.nativeCodeInfo = nativeCodeInfo;