   ;; Intercept and validate both the throw from start-puppetdb and the
   ;; subsequent shutdown request from start.
   (let [service (atom nil)
-        start-ex (promise)
+        start-ex (atom nil)
         orig-start svcs/start-puppetdb
         start (fn [& args]
                 (let [[context config svc get-endpts request-shutdown upgrade?] args]
                   (reset! service svc)
                   (try
                     (let [result (apply orig-start args)]
-                      (deliver start-ex nil)
+                      (reset! start-ex nil)
                       result)
                     (catch Exception ex
-                      (deliver start-ex ex)
+                      (reset! start-ex ex)
                       (throw ex)))))
         err-msg? #(re-matches #"PostgreSQL 9\.5 is no longer supported\. .*" %1)]
 

                  (reset! service svc)
                  (try
                    (let [result (apply orig-start args)]
                      (deliver start-ex nil)
                      result)
                    (catch Exception ex
                      (deliver start-ex ex)
                      (throw ex)))))
        err-msg? #(re-matches #"Invalid database configuration settings: 'standard_.*" %1)]


        true))

    (testing "invalid-database-configuration exception thrown"
      (let [ex (deref start-ex)
            {:keys [kind failed-validation]} (when (instance? ExceptionInfo ex)
                                               (ex-data ex))]
        (is (= ExceptionInfo (class ex)))
