diff --git a/app/uploaders/object_store_uploader.rb b/app/uploaders/object_store_uploader.rb
index 79edc84ef4f3a57fe14a5bc1e81bce8f8388bdea..c39f23c0fc6dbc5a5c193cf7f1783aebb0581948 100644
--- a/app/uploaders/object_store_uploader.rb
+++ b/app/uploaders/object_store_uploader.rb
@@ -106,18 +106,20 @@ class ObjectStoreUploader < CarrierWave::Uploader::Base
     # change storage
     self.object_store = new_store
 
-    storage.store!(file).tap do |new_file|
-      # since we change storage store the new storage
-      # in case of failure delete new file
-      begin
-        subject.save!
-      rescue => e
-        new_file.delete
-        self.object_store = old_store
-        raise e
+    with_callbacks(:store, file) do
+      storage.store!(file).tap do |new_file|
+        # since we change storage store the new storage
+        # in case of failure delete new file
+        begin
+          subject.save!
+        rescue => e
+          new_file.delete
+          self.object_store = old_store
+          raise e
+        end
+
+        old_file.delete
       end
-
-      old_file.delete
     end
   end
 
diff --git a/spec/uploaders/object_store_uploader_spec.rb b/spec/uploaders/object_store_uploader_spec.rb
index 430c6b95c24c4d56622ff0ede3e30c7fb3a549cb..308e068ff47cff509d21b3f43096518cc3ca7471 100644
--- a/spec/uploaders/object_store_uploader_spec.rb
+++ b/spec/uploaders/object_store_uploader_spec.rb
@@ -184,6 +184,16 @@ describe ObjectStoreUploader do
           end
         end
 
+        context 'when storage is unlicensed' do
+          before do
+            stub_artifacts_object_storage(licensed: false)
+          end
+
+          it "raises an error" do
+            expect { subject }.to raise_error(/Object Storage feature is missing/)
+          end
+        end
+
         context 'when credentials are set' do
           before do
             stub_artifacts_object_storage