diff --git a/app/services/groups/update_service.rb b/app/services/groups/update_service.rb index fe47aa2f140..0bf0e967dcc 100644 --- a/app/services/groups/update_service.rb +++ b/app/services/groups/update_service.rb @@ -14,9 +14,11 @@ module Groups group.assign_attributes(params) begin - after_update if group.save + success = group.save - true + after_update if success + + success rescue Gitlab::UpdatePathError => e group.errors.add(:base, e.message) diff --git a/spec/services/groups/update_service_spec.rb b/spec/services/groups/update_service_spec.rb index 7c5c7409cc1..84cfa53ea05 100644 --- a/spec/services/groups/update_service_spec.rb +++ b/spec/services/groups/update_service_spec.rb @@ -24,6 +24,12 @@ describe Groups::UpdateService do expect(TodosDestroyer::GroupPrivateWorker).not_to receive(:perform_in) end + + it "returns false if save failed" do + allow(public_group).to receive(:save).and_return(false) + + expect(service.execute).to be_falsey + end end context "internal group with internal project" do