     (try
       (with-open [in (io/input-stream uri)
                   out (io/output-stream file)]
-        (io/copy in out)
-        (when-let [img (ImageIO/read file)]
-          [(.getWidth img) (.getHeight img)]))
+        (io/copy in out))
+      (if-let [img (ImageIO/read file)]
+        [(.getWidth img) (.getHeight img)]
+        (throw (Exception. (str "Couldn't create ImageIO!"))))
+      (catch Throwable e (log/warn (str "Failed to process dimensions for " uri " - " (.getMessage e))))
       (finally (fs/delete file)))))
 
 (defn coerce-time

                            {:query-params
                             (merge access-token
                                    {:fields "created_time,description,id,permalink_url,picture,title,embeddable,format"})})) true)]
               (let [{:keys [data paging]} page
                     {:keys [next]} paging
                     next-data (concat a data)]

                            (do
                              (log/debug "Caching unseen tag:" tag)
                              (swap! tags assoc tag 1)))) (:tags md))
          (assoc video :meta md))
        video))))

