Briefly, this error occurs when an Elasticsearch datafeed is trying to fetch data for a machine learning job that is not yet open. The datafeed cannot start until the job is open and ready to receive data. To resolve this issue, you can either manually open the job using the ‘open job API’ or ensure that the job is set to open automatically when the datafeed starts. Also, check for any issues that might be preventing the job from opening, such as insufficient memory or disk space.
This guide will help you check for common problems that cause the log ” Datafeed [{}] is waiting for job [{}] to be opened ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: plugin.
Log Context
Log “Datafeed [{}] is waiting for job [{}] to be opened” classname is DatafeedRunner.java.
We extracted the following from Elasticsearch source code for those seeking an in-depth context :
ClusterState clusterState = clusterService.state(); PersistentTasksCustomMetadata tasks = clusterState.getMetadata().custom(PersistentTasksCustomMetadata.TYPE); if (getJobState(tasks; jobId) == JobState.OPENED && jobHasOpenAutodetectCommunicator(tasks; jobId)) { runTask(datafeedTask); } else { logger.info("Datafeed [{}] is waiting for job [{}] to be opened"; datafeedTask.getDatafeedId(); jobId); tasksToRun.add(datafeedTask); } } private void runTask(TransportStartDatafeedAction.DatafeedTask task) {