diff --git a/app/models/optimized_image.rb b/app/models/optimized_image.rb
index 8ef01c3d690..b94fea6ac88 100644
--- a/app/models/optimized_image.rb
+++ b/app/models/optimized_image.rb
@@ -55,12 +55,14 @@ class OptimizedImage < ActiveRecord::Base
             url: "",
           )
           # store the optimized image and update its url
-          url = Discourse.store.store_optimized_image(temp_file, thumbnail)
-          if url.present?
-            thumbnail.url = url
-            thumbnail.save
-          else
-            Rails.logger.error("Failed to store avatar #{size} for #{upload.url} from #{source}")
+          File.open(temp_path) do |file|
+            url = Discourse.store.store_optimized_image(file, thumbnail)
+            if url.present?
+              thumbnail.url = url
+              thumbnail.save
+            else
+              Rails.logger.error("Failed to store optimized image #{width}x#{height} for #{upload.url}")
+            end
           end
         else
           Rails.logger.error("Failed to create optimized image #{width}x#{height} for #{upload.url}")
@@ -159,16 +161,13 @@ class OptimizedImage < ActiveRecord::Base
 
   def self.convert_with(instructions, to)
     `convert #{instructions.join(" ")}`
-
     return false if $?.exitstatus != 0
 
-    begin
-      ImageOptim.new.optimize_image!(to)
-    rescue => ex
-      Rails.logger.warn("Could not optimize image: #{to}")
-    end
-
+    ImageOptim.new.optimize_image!(to)
     true
+  rescue
+    Rails.logger.error("Could not optimize image: #{to}")
+    false
   end
 
 end