diff --git a/src/main/java/org/elasticsearch/alerts/AlertsStore.java b/src/main/java/org/elasticsearch/alerts/AlertsStore.java
index 7d9e5cf85b7..874eedbd4c4 100644
--- a/src/main/java/org/elasticsearch/alerts/AlertsStore.java
+++ b/src/main/java/org/elasticsearch/alerts/AlertsStore.java
@@ -157,6 +157,7 @@ public class AlertsStore extends AbstractComponent {
                     loadAlerts();
                 } catch (Exception e) {
                     logger.warn("Failed to load alerts", e);
+                    return false;
                 }
                 templateHelper.checkAndUploadIndexTemplate(state, "alerts");
                 started.set(true);
@@ -192,8 +193,8 @@ public class AlertsStore extends AbstractComponent {
     }
 
     private void loadAlerts() {
+        assert alertMap.isEmpty() : "No alerts should reside, but there are " + alertMap.size() + " alerts.";
         client.admin().indices().refresh(new RefreshRequest(ALERT_INDEX)).actionGet();
-
         SearchResponse response = client.prepareSearch(ALERT_INDEX)
                 .setTypes(ALERT_TYPE)
                 .setSearchType(SearchType.SCAN)
@@ -202,6 +203,10 @@ public class AlertsStore extends AbstractComponent {
                 .setVersion(true)
                 .get();
         try {
+            if (response.getTotalShards() != response.getSuccessfulShards()) {
+                throw new ElasticsearchException("Partial response while loading alerts");
+            }
+
             if (response.getHits().getTotalHits() > 0) {
                 response = client.prepareSearchScroll(response.getScrollId()).setScroll(scrollTimeout).get();
                 while (response.getHits().hits().length != 0) {
diff --git a/src/main/java/org/elasticsearch/alerts/actions/AlertActionManager.java b/src/main/java/org/elasticsearch/alerts/actions/AlertActionManager.java
index f3f9adbb450..326e79b67cd 100644
--- a/src/main/java/org/elasticsearch/alerts/actions/AlertActionManager.java
+++ b/src/main/java/org/elasticsearch/alerts/actions/AlertActionManager.java
@@ -123,7 +123,7 @@ public class AlertActionManager extends AbstractComponent {
             loadQueue();
         } catch (Exception e) {
             logger.error("Unable to load unfinished jobs into the job queue", e);
-            actionsToBeProcessed.clear();
+            return false;
         }
         templateHelper.checkAndUploadIndexTemplate(state, "alerthistory");
         doStart();
@@ -158,7 +158,6 @@ public class AlertActionManager extends AbstractComponent {
     public void loadQueue() {
         assert actionsToBeProcessed.isEmpty() : "Queue should be empty, but contains " + actionsToBeProcessed.size() + " elements.";
         client.admin().indices().refresh(new RefreshRequest(ALERT_HISTORY_INDEX_PREFIX + "*")).actionGet();
-
         SearchResponse response = client.prepareSearch(ALERT_HISTORY_INDEX_PREFIX + "*")
                 .setQuery(QueryBuilders.termQuery(STATE, AlertActionState.SEARCH_NEEDED.toString()))
                 .setSearchType(SearchType.SCAN)
@@ -167,6 +166,10 @@ public class AlertActionManager extends AbstractComponent {
                 .setTypes(ALERT_HISTORY_TYPE)
                 .get();
         try {
+            if (response.getTotalShards() != response.getSuccessfulShards()) {
+                throw new ElasticsearchException("Partial response while loading alert actions");
+            }
+
             if (response.getHits().getTotalHits() > 0) {
                 response = client.prepareSearchScroll(response.getScrollId()).setScroll(scrollTimeout).get();
                 while (response.getHits().hits().length != 0) {