                                           (run-test (dissoc test :schedule))
                                           (catch java.util.concurrent.TimeoutException ex
                                             {:state "critical"
-                                             :description "timed out"}))
+                                             :description "timed out"})
+                                          (catch Exception ex
+                                            {:state "critical"
+                                             :description (str "command: " (:command test) ex)}))
                           riemann-event (assoc riemann-event
                                                :time (.toSeconds TimeUnit/MILLISECONDS
                                                                  (System/currentTimeMillis))

                                                             (:service riemann-event)))]
                      (doseq [client clients]
                        (try
                          (send-event client riemann-event)
                          (log/debug (format "Sent event: %s" riemann-event))
                          (catch Exception ex
                            (log/error (str "service: " (:service riemann-event) " "

    (do (log/info (str "Reading config from file: " config))
        (config/include config))
    (log/info (str "Using default settings.")))
  (let [finish-chan (async/chan 1)
        dry-run (when args (.contains args "--dry-run"))]
    (app config/settings dry-run finish-chan)))
