How To Solve Issues Related to Log – The task wasnt found; status is not updated

Get an Elasticsearch Check-Up

Check if your ES issues are caused from misconfigured settings
(Free 2 min process)

Check-Up

Last update: Jan-20

Elasticsearch Error Guide In Page Navigation (click to jump) :

Troubleshooting Background – start here to get the full picture       
Related Issues – selected resources on related issues  
Log Context – usefull for experts
About Opster – offering a diffrent approach to troubleshoot Elasticsearch

Check Your Elasticsearch Settings for Painfull Mistakes 


Troubleshooting background

To troubleshoot Elasticsearch log “The task wasnt found; status is not updated” it’s important to know common problems related to Elasticsearch concepts: cluster, persistent, task. See below-detailed explanations complete with common problems, examples and useful tips.

Cluster in Elasticsearch

What is it

In Elasticsearch a cluster is a collection of one or more nodes (servers / VMs). A cluster can consist of an unlimited number of nodes. The cluster provides interface for indexing and storing data and search capability across all of the data which is stored in the data nodes

Each cluster has a single master node that is elected by the master eligible nodes. In cases where the master is not available the other connected master eligible nodes elect a new master. Clusters are identified by a unique name, which defaults to “Elasticsearch”.

Persistent in Elasticsearch

What it is

In Elasticsearch, Persistent refers to cluster settings that persist across cluster restarts. This setting is used in Cluster Update API calls. Persistent settings can also be configured in elasticsearch.yml file.

Examples
## enable shard routing
PUT /_cluster/settings
{
    "persistent" : {
        "cluster.routing.allocation.enable" : "all"
    }
}
## enable rebalancing of shards
PUT /_cluster/settings
{
    "persistent" : {
        "cluster.routing.rebalance.enable" : "all"
    }
}
## limit the heap size for fielddata
PUT /_cluster/settings
{
    "persistent" : {
                 “indices.breaker.fielddata.limit”: "30%"
    }
}

Task in Elasticsearch

What it is

A task is equivalent to an Elasticsearch operation, which can be any request performed on an Elasticsearch cluster. For example, a delete by query request, a search request and so on. Elasticsearch provides a dedicated Task API for the task management which includes various actions, from retrieving the status of current running tasks to canceling any long running task.

Examples
Get all currently running tasks on all nodes of the cluster

Apart from other information, the response of the below request contains task IDs of all the tasks which can be used to get detailed information about the particular task in question.

GET _tasks
GET detailed information of a particular task

clQFAL_VRrmnlRyPsu_p8A:1132678759 is the ID of the task in below request.

GET _tasks/clQFAL_VRrmnlRyPsu_p8A:1132678759
Get all the current tasks running on particular nodes
GET _tasks?nodes=nodeId1,nodeId2
Cancel a long-running task

clQFAL_VRrmnlRyPsu_p8A:1132678759 is the ID of the task in the below request.

POST /_tasks/clQFAL_VRrmnlRyPsu_p8A:1132678759/_cancel?pretty
Notes
  • The Task API will be most useful when you want to investigate the spike of resource utilization in the cluster or want to cancel an operation.


To help troubleshoot related issues we have gathered selected Q&A from the community and issues from Github , please review the following for further information :

1. No mapping found for field in order to sort on in ElasticSearch – Stats : ♥ 56.47 K  Ι √ 102

2. Elasticsearch: Waiting for Long Running requests to complete – Stats : ♥ 0.42 K  Ι √     –


Log Context

Log ”The task wasnt found; status is not updated” classname is PersistentTasksClusterService.java
We have extracted the following from Elasticsearch source code to get an in-depth context :

                 } else {
                    if (tasksInProgress.hasTask(id)) {
                        logger.warn("The task [{}] with id [{}] was found but it has a different allocation id [{}]; status is not updated";
                                PersistentTasksCustomMetaData.getTaskWithId(currentState; id).getTaskName(); id; allocationId);
                    } else {
                        logger.warn("The task [{}] wasn't found; status is not updated"; id);
                    }
                    throw new ResourceNotFoundException("the task with id [" + id + "] and allocation id [" + allocationId + "] not found");
                }
            }







About Opster

Incorporating deep knowledge and broad history of Elasticsearch issues. Opster’s solution identifies and predicts root causes of Elasticsearch problems, provides recommendations and can automatically perform various actions to manage, troubleshoot and prevent issues

Learn more: Glossary | Blog| Troubleshooting guides | Error Repository

Need help with any Elasticsearch issue ? Contact Opster

Did this page help you?