diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/river/routing/RiversRouter.java b/modules/elasticsearch/src/main/java/org/elasticsearch/river/routing/RiversRouter.java index fa240cbef4d..9da80195887 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/river/routing/RiversRouter.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/river/routing/RiversRouter.java @@ -123,10 +123,15 @@ public class RiversRouter extends AbstractLifecycleComponent imple } } // now, remove routings that were deleted + // also, apply nodes that were removed and rivers were running on for (RiverRouting routing : currentState.routing()) { if (!indexMetaData.mappings().containsKey(routing.riverName().name())) { routingBuilder.remove(routing); dirty = true; + } else if (routing.node() != null && !event.state().nodes().nodeExists(routing.node().id())) { + routingBuilder.remove(routing); + routingBuilder.put(new RiverRouting(routing.riverName(), null)); + dirty = true; } }