From 27064c917741bb8a253422a1eeda4fd5061a1de3 Mon Sep 17 00:00:00 2001
From: Suzanne Vogt <suzanne.vogt@datacite.org>
Date: Fri, 8 Apr 2022 16:39:42 -0400
Subject: [PATCH] Issue #794 - ES - DOIs Deposited in the Wrong Index (cleanup)

---
 app/models/concerns/indexable.rb | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/app/models/concerns/indexable.rb b/app/models/concerns/indexable.rb
index 90fb2e713..d9e4f51cf 100644
--- a/app/models/concerns/indexable.rb
+++ b/app/models/concerns/indexable.rb
@@ -1208,9 +1208,8 @@ def active_index
       alias_name = index_name
       client = Elasticsearch::Model.client
 
-      h = client.indices.get_alias(name: alias_name)
-
-      if h && (!h.key?(:error) && !h.key?("error"))
+      begin
+        h = client.indices.get_alias(name: alias_name)
 
         if h.size == 1
           ret = h.keys.first
@@ -1227,6 +1226,8 @@ def active_index
             ret = h.keys.first
           end
         end
+      rescue Elasticsearch::Transport::Transport::Errors::NotFound => e
+        Rails.logger.error e.message
       end
 
       ret
@@ -1234,11 +1235,18 @@ def active_index
 
     # Return the inactive index, i.e. the index that is not aliased
     def inactive_index
+      ret = nil
+
       active_index = self.active_index
-      index_name = self.index_name + "_v1"
-      alternate_index_name = self.index_name + "_v2"
 
-      active_index.end_with?("v1") ? alternate_index_name : index_name
+      if !active_index.nil?
+        index_name = self.index_name + "_v1"
+        alternate_index_name = self.index_name + "_v2"
+
+        ret = active_index.end_with?("v1") ? alternate_index_name : index_name
+      end
+
+      ret
     end
 
     # create index template