Watch is running currently; cannot ack until finished – How to solve this Elasticsearch error

Watch is running currently; cannot ack until finished – How to solve this Elasticsearch error

Opster Team

July-20, Version: 1.7-8.0

Before you begin reading this guide, we recommend you try running the Elasticsearch Error Check-Up which can resolve issues that cause many errors.

This guide will help you check for common problems that cause the log ” watch is running currently; cannot ack until finished ” to appear. It’s important to understand the issues related to the log, so to get started, read the general overview on common issues and tips related to the Elasticsearch concepts: plugin.

Advanced users might want to skip right to the common problems section in each concept or try running the Check-Up which analyses ES to pinpoint the cause of many errors and provides suitable actionable recommendations how to resolve them (free tool that requires no installation).

Log Context

Log”watch[{}] is running currently; cannot ack until finished”classname  is TransportAckWatchAction.java We extracted the following from Elasticsearch source code for those seeking an in-depth context :

executeAsyncWithOrigin(client; WATCHER_ORIGIN; WatcherStatsAction.INSTANCE; watcherStatsRequest; ActionListener.wrap(response -> {
  boolean isWatchRunning = response.getNodes().stream()
  .anyMatch(node -> node.getSnapshots().stream().anyMatch(snapshot -> snapshot.watchId().equals(request.getWatchId())));
  if (isWatchRunning) {
  listener.onFailure(new ElasticsearchStatusException("watch[{}] is running currently; cannot ack until finished";
  RestStatus.CONFLICT; request.getWatchId()));
  } else {
  GetRequest getRequest = new GetRequest(Watch.INDEX; request.getWatchId())
  .preference(Preference.LOCAL.type()).realtime(true);

Run the Check-Up to get a customized report like this:

check-up-dashboard illustration

Try The Tool