diff --git a/src/main/frontend/db/query_dsl.cljs b/src/main/frontend/db/query_dsl.cljs index 79456b8d82..e33ad921cb 100644 --- a/src/main/frontend/db/query_dsl.cljs +++ b/src/main/frontend/db/query_dsl.cljs @@ -517,11 +517,18 @@ (take @sample (shuffle col))) identity) transform-fn (comp sort-by random-samples)] - (react/react-query repo - {:query query - :query-string query-string} - {:use-cache? false - :transform-fn transform-fn})))))))))) + (try + (react/react-query repo + {:query query + :query-string query-string + :throw-exception true} + {:use-cache? false + :transform-fn transform-fn}) + (catch ExceptionInfo e + ;; Allow non-existent page queries to be ignored + (if (string/includes? (str (.-message e)) "Nothing found for entity") + (log/error :query-dsl-error e) + (throw e))))))))))))) (defn custom-query [repo query-m query-opts] diff --git a/src/main/frontend/db/query_react.cljs b/src/main/frontend/db/query_react.cljs index 0ec35e899c..15f20a32ce 100644 --- a/src/main/frontend/db/query_react.cljs +++ b/src/main/frontend/db/query_react.cljs @@ -112,7 +112,7 @@ f)) query))) (defn react-query - [repo {:keys [query inputs] :as query'} query-opts] + [repo {:keys [query inputs throw-exception] :as query'} query-opts] (let [pprint (if config/dev? (fn [_] nil) debug/pprint)] (pprint "================") (pprint "Use the following to debug your datalog queries:") @@ -126,5 +126,7 @@ (pprint "query-opts:" query-opts) (apply react/q repo k query-opts query inputs)) (catch js/Error e + (when throw-exception + (throw (ex-info (.-message e) {}))) (pprint "Custom query failed: " {:query query'}) (js/console.dir e)))))