diff --git a/src/metabase/pulse.clj b/src/metabase/pulse.clj index 96a16402d4699f6cfff19a34916796869b340a6f..aa2d7f8d484f57821d6702b9c4748ffe6ebd1c5b 100644 --- a/src/metabase/pulse.clj +++ b/src/metabase/pulse.clj @@ -15,8 +15,7 @@ [metabase.util [ui-logic :as ui] [urls :as urls]] - [metabase.util.urls :as urls] - [puppetlabs.i18n.core :refer [tru]] + [puppetlabs.i18n.core :refer [trs tru]] [schema.core :as s] [toucan.db :as db]) (:import java.util.TimeZone @@ -212,7 +211,12 @@ (defn- send-notifications! [notifications] (doseq [notification notifications] - (send-notification! notification))) + ;; do a try-catch around each notification so if one fails, we'll still send the other ones for example, an Alert + ;; set up to send over both Slack & email: if Slack fails, we still want to send the email (#7409) + (try + (send-notification! notification) + (catch Throwable e + (log/error e (trs "Error sending notification!")))))) (defn- pulse->notifications [{:keys [cards channel-ids], :as pulse}] (let [results (for [card cards