I am receiving alerts of the following type on every execution of a watch :
[.watches/i29-EeXVQsO4S8rDpGWRqw][[.watches][0]] VersionConflictEngineException[[watch][my_watch]: version conflict, current version [73048] is different than the one provided [73047]] at org.elasticsearch.index.engine.Engine.getFromSearcher(Engine.java:316) at org.elasticsearch.index.engine.InternalEngine.get(InternalEngine.java:348) at org.elasticsearch.index.shard.IndexShard.get(IndexShard.java:608) at org.elasticsearch.index.get.ShardGetService.innerGet(ShardGetService.java:165) at org.elasticsearch.index.get.ShardGetService.get(ShardGetService.java:83) at org.elasticsearch.action.update.UpdateHelper.prepare(UpdateHelper.java:81) at org.elasticsearch.action.update.TransportUpdateAction.shardOperation(TransportUpdateAction.java:179) at org.elasticsearch.action.update.TransportUpdateAction.shardOperation(TransportUpdateAction.java:172) at org.elasticsearch.action.update.TransportUpdateAction.shardOperation(TransportUpdateAction.java:69) at org.elasticsearch.action.support.single.instance.TransportInstanceSingleOperationAction$ShardTransportHandler.messageReceived(TransportInstanceSingleOperationAction.java:247) at org.elasticsearch.action.support.single.instance.TransportInstanceSingleOperationAction$ShardTransportHandler.messageReceived(TransportInstanceSingleOperationAction.java:243) at org.elasticsearch.transport.TransportRequestHandler.messageReceived(TransportRequestHandler.java:33) at org.elasticsearch.xpack.security.transport.SecurityServerTransportInterceptor$ProfileSecuredRequestHandler.messageReceived(SecurityServerTransportInterceptor.java:206) at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:69) at org.elasticsearch.transport.TcpTransport$RequestHandler.doRun(TcpTransport.java:1348) at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:520) at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
I have found the following explanation on the board :
"so what happens here, is that each Watch stores itself after it has run. In order to store versioning is used. What happened here specifically was the fact, that a watch was loaded together with its version information, then executed and then this version was specified to store again. However this failed, because another process already did exactly the same. So somehow you triggered the same watch twice in your cluster."
So possibly the Watch executed multiple times at a point where the master node switched nodes,
however I am unclear as to what the solution is ? Does the Watch need to be deleted and recreated to solve the issue, or is there a way to "reset" the versioning to make it correct ? Also I can't seem to find exactly where the versioning information is stored.