 (defn figwheel-sidecar-version []
   (when-let [version-var (resolve 'figwheel-sidecar.config/_figwheel-version_)]
      @version-var))
+
+(try
+  (assert
+   (= _figwheel-version_ (figwheel-sidecar-version))
+   (str "Figwheel version mismatch!!\n"
+        "You are using the lein-figwheel plugin with version: "
+        (pr-str _figwheel-version_) "\n"
+        "With a figwheel-sidecar library with version:        "
+        (pr-str (figwheel-sidecar-version)) "\n"
+        "\n"
+        "These versions need to be the same.\n"
+        "\n"
+        "Please look at your project.clj :dependencies to see what is causing this.\n"
+        "You may need to run \"lein clean\" \n"
+        "Running \"lein deps :tree\" can help you see your dependency tree."))
+  (catch Throwable e
+    (lmain/abort (.getMessage e))))
 
 (defn make-subproject [project builds]
   (with-meta

   [leiningen.core.eval :as leval]
   [leiningen.core.project :as lproj]
   [leiningen.core.utils :as lutils]
   [leiningen.clean :as clean]
   [clojure.java.io :as io]
   [figwheel-sidecar.config :as fc]

    (do (println "Figwheel: Configuration validation failed. Exiting ...")
        false)))

(defn clean-on-dependency-change [{:keys [target-path dependencies] :as project}]
  (when (and target-path dependencies)
    (fc/on-stamp-change
