diff --git a/lib/file_helper.rb b/lib/file_helper.rb
index 9f859ff335a..c44f2b20dcf 100644
--- a/lib/file_helper.rb
+++ b/lib/file_helper.rb
@@ -67,7 +67,11 @@ class FileHelper
 
       tmp.write(chunk)
 
-      throw :done if tmp.size > max_file_size
+      if tmp.size > max_file_size
+        tmp.close
+        tmp = nil
+        throw :done
+      end
     end
 
     tmp&.rewind
diff --git a/spec/components/file_helper_spec.rb b/spec/components/file_helper_spec.rb
index 2dc2dabd1b5..adb3730b989 100644
--- a/spec/components/file_helper_spec.rb
+++ b/spec/components/file_helper_spec.rb
@@ -71,6 +71,18 @@ describe FileHelper do
       expect(Base64.encode64(tmpfile.read)).to eq(Base64.encode64(png))
     end
 
+    describe 'when max_file_size is exceeded' do
+      it 'should return nil' do
+        tmpfile = FileHelper.download(
+          "//eviltrout.com/trout.png",
+          max_file_size: 1,
+          tmp_file_name: 'trouttmp'
+        )
+
+        expect(tmpfile).to eq(nil)
+      end
+    end
+
     describe 'when url is a jpeg' do
       let(:url) { "https://eviltrout.com/trout.jpg" }