                                                                   (some? state) (assoc :state state))))
                                                             container-statuses))))]
       (when exceeded-restart-kill-threshold?
-        (if (leader?-fn)
-          (kill-restart-threshold-exceeded-pod scheduler instance)
-          (log/info "skipping deleting frequently restarting pod on non-leader"
-                    {:pod-name pod-name :restart-count primary-container-restart-count :service-id service-id})))
+        (try
+          (if (leader?-fn)
+            (kill-restart-threshold-exceeded-pod scheduler-config instance)
+            (log/info "skipping deleting frequently restarting pod on non-leader"
+                      {:pod-name pod-name :restart-count primary-container-restart-count :service-id service-id}))
+          (catch Throwable e
+            (log/error e "error killing frequently restarting pod" pod-name))))
       instance)
     (catch Throwable e
       (log/error e "error converting pod to waiter service instance" pod)

   - it has restarted too many times (reached the restart-expiry-threshold threshold)
   - the primary container (waiter-apps) has not transitioned to running state in container-running-grace-secs seconds
   - the pod has the waiter/pod-expired=true annotation."
  [{:keys [container-running-grace-secs restart-expiry-threshold watch-state]}
   service-id instance-id restart-count {:keys [waiter/pod-expired waiter/revision-timestamp]}
   primary-container-status pod-started-at]
  (let [rs-revision-timestamp-path [:service-id->service service-id :k8s/replicaset-annotations :waiter/revision-timestamp]

(defn instances-breakdown!
  "Get all Waiter Service Instances associated with the given Waiter Service.
   Grouped by liveness status, i.e.: {:active-instances [...] :failed-instances [...] :killed-instances [...]}"
  [{:keys [service-id->failed-instances-transient-store] :as scheduler-config} {service-id :id :as basic-service-info}]
  {:active-instances (get-service-instances! scheduler-config basic-service-info)
   :failed-instances (-> @service-id->failed-instances-transient-store (get service-id) vec)})

(defn- patch-object-json
