         (reader env)
         (catch #?(:clj Throwable :cljs :default) e
           (swap! errors* assoc path (if process-error (process-error env e)
-                                                      #?(:clj  (Throwable->map e)
-                                                         :cljs e)))
+                                                      (error-str e)))
           ::reader-error)))))
 
 (defn wrap-parser-exception [parser]

  [ast]
  (let [key (some-> ast :key)]
    (if (sequential? key) (second key))))


; Exception

(defn error-str [err]
  (let [msg (.getMessage err)
        data (ex-data err)]
    (cond-> (class err)
      msg (str ": " msg)
      data (str " - " (pr-str data)))))

(defn wrap-handle-exception [reader]
  (fn [{::keys [errors* path process-error fail-fast?] :as env}]
    (if fail-fast?
