diff --git a/src/metabase/server/routes.clj b/src/metabase/server/routes.clj
index 6f57f892ee3ff2e0128858bed23204e088f0b97c..8e8dce24446a5ad18befd162e313e2ab1f9fb61b 100644
--- a/src/metabase/server/routes.clj
+++ b/src/metabase/server/routes.clj
@@ -1,15 +1,19 @@
 (ns metabase.server.routes
   "Main Compojure routes tables. See https://github.com/weavejester/compojure/wiki/Routes-In-Detail for details about
    how these work. `/api/` routes are in `metabase.api.routes`."
-  (:require [compojure.core :refer [context defroutes GET]]
+  (:require [clojure.tools.logging :as log]
+            [compojure.core :refer [context defroutes GET]]
             [compojure.route :as route]
             [metabase.api.dataset :as api.dataset]
             [metabase.api.routes :as api]
             [metabase.core.initialization-status :as init-status]
+            [metabase.db.connection :as mdb.connection]
+            [metabase.driver.sql-jdbc.connection :as sql-jdbc.conn]
             [metabase.plugins.classloader :as classloader]
             [metabase.public-settings :as public-settings]
             [metabase.server.routes.index :as index]
             [metabase.util :as u]
+            [metabase.util.i18n :refer [trs]]
             [ring.util.response :as response]))
 
 (u/ignore-exceptions (classloader/require '[metabase-enterprise.sso.api.routes :as ee.sso.routes]))
@@ -43,9 +47,15 @@
   (GET "/" [] index/index)
   (GET "/favicon.ico" [] (response/resource-response (public-settings/application-favicon-url)))
   ;; ^/api/health -> Health Check Endpoint
-  (GET "/api/health" [] (if (init-status/complete?)
-                          {:status 200, :body {:status "ok"}}
-                          {:status 503, :body {:status "initializing", :progress (init-status/progress)}}))
+  (GET "/api/health" []
+       (if (init-status/complete?)
+         (try (if (sql-jdbc.conn/can-connect-with-spec? {:datasource (mdb.connection/data-source)})
+                {:status 200, :body {:status "ok"}}
+                {:status 503 :body {:status "Unable to get app-db connection"}})
+              (catch Exception e
+                (log/warn e (trs "Error in api/health database check"))
+                {:status 503 :body {:status "Error getting app-db connection"}}))
+         {:status 503, :body {:status "initializing", :progress (init-status/progress)}}))
   ;; ^/api/ -> All other API routes
   (context "/api" [] (fn [& args]
                        ;; Redirect naughty users who try to visit a page other than setup if setup is not yet complete