diff --git a/plugin/src/main/java/org/elasticsearch/xpack/ml/action/CloseJobAction.java b/plugin/src/main/java/org/elasticsearch/xpack/ml/action/CloseJobAction.java index d559869138d..d232ef52501 100644 --- a/plugin/src/main/java/org/elasticsearch/xpack/ml/action/CloseJobAction.java +++ b/plugin/src/main/java/org/elasticsearch/xpack/ml/action/CloseJobAction.java @@ -249,8 +249,13 @@ public class CloseJobAction extends Action jobTask = MlMetadata.getJobTask(request.getJobId(), tasks); - forceCloseJob(jobTask.getId(), request.getJobId(), listener); + String jobId = request.getJobId(); + PersistentTask jobTask = MlMetadata.getJobTask(jobId, tasks); + if (jobTask == null) { + throw new ElasticsearchStatusException("cannot force close job, because job [" + jobId + "] is not open", + RestStatus.CONFLICT); + } + forceCloseJob(jobTask.getId(), jobId, listener); } else { PersistentTask jobTask = validateAndReturnJobTask(request.getJobId(), currentState); normalCloseJob(task, jobTask.getId(), request, listener);