From 5ce1cc2d257278336425837c08b4fc33c507954a Mon Sep 17 00:00:00 2001
From: Cam Saul <cammsaul@gmail.com>
Date: Fri, 4 Jan 2019 15:21:43 -0800
Subject: [PATCH] Don't explode if dash params have invalid targets (#8917)

---
 src/metabase/models/params.clj | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/metabase/models/params.clj b/src/metabase/models/params.clj
index f663934b93c..116fc05e3ab 100644
--- a/src/metabase/models/params.clj
+++ b/src/metabase/models/params.clj
@@ -1,12 +1,13 @@
 (ns metabase.models.params
   "Utility functions for dealing with parameters for Dashboards and Cards."
   (:require [clojure.set :as set]
+            [clojure.tools.logging :as log]
             [metabase
              [db :as mdb]
              [util :as u]]
             [metabase.mbql.util :as mbql.u]
             [metabase.util
-             [i18n :as ui18n :refer [trs]]
+             [i18n :as ui18n :refer [trs tru]]
              [schema :as su]]
             [schema.core :as s]
             [toucan
@@ -61,9 +62,13 @@
   [target dashcard]
   (when (mbql.u/is-clause? :dimension target)
     (let [[_ dimension] target]
-      (field-form->id (if (mbql.u/is-clause? :template-tag dimension)
-                        (template-tag->field-form dimension dashcard)
-                        dimension)))))
+      (try
+        (field-form->id
+         (if (mbql.u/is-clause? :template-tag dimension)
+           (template-tag->field-form dimension dashcard)
+           dimension))
+        (catch Throwable e
+          (log/error e (tru "Could not find matching Field ID for target:") target))))))
 
 
 (defn- pk-fields
-- 
GitLab