diff --git a/backend/src/app/media.clj b/backend/src/app/media.clj index b775c48525..14a4191e0a 100644 --- a/backend/src/app/media.clj +++ b/backend/src/app/media.clj @@ -175,7 +175,12 @@ (ex/raise :type :internal :code :rlimit-not-configured :hint ":image rlimit not configured")) - (rlm/execute rlimit (process params)))) + (try + (rlm/execute rlimit (process params)) + (catch org.im4java.core.InfoException e + (ex/raise :type :validation + :code :invalid-image + :cause e))))) ;; --- Utility functions diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index 4b4f5fea2d..892d6ed0fa 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -417,13 +417,16 @@ (defn- handle-upload-error [on-error stream] (->> stream (rx/catch - (fn on-error [error] + (fn on-error* [error] (if (ex/ex-info? error) - (on-error (ex-data error)) + (on-error* (ex-data error)) (cond (= (:code error) :media-type-not-allowed) (rx/of (dm/error (tr "errors.media-type-not-allowed"))) + (= (:code error) :invalid-image) + (rx/of (dm/error (tr "errors.media-type-not-allowed"))) + (= (:code error) :media-too-large) (rx/of (dm/error (tr "errors.media-too-large")))