diff --git a/app/controllers/admin/groups_controller.rb b/app/controllers/admin/groups_controller.rb
index 8e486a1ac9f9309d4090e65e7d1c1977136b9eef..5b5d6497f1d64dc06a22db1b7f15bff4c896f711 100644
--- a/app/controllers/admin/groups_controller.rb
+++ b/app/controllers/admin/groups_controller.rb
@@ -53,7 +53,7 @@ def create
   def update
     @group.build_admin_note unless @group.admin_note
 
-    if @group.update(group_params)
+    if Groups::UpdateService.new(@group, current_user, group_params).execute
       unless Gitlab::Utils.to_boolean(group_params['runner_registration_enabled'])
         Ci::Runners::ResetRegistrationTokenService.new(@group, current_user).execute
       end
diff --git a/ee/app/controllers/ee/admin/groups_controller.rb b/ee/app/controllers/ee/admin/groups_controller.rb
index b8d05243c7f2f2e770200e45e1eddad40cf2cf19..992873312918f85b50ae2c83e9b8a0e471ef5b6d 100644
--- a/ee/app/controllers/ee/admin/groups_controller.rb
+++ b/ee/app/controllers/ee/admin/groups_controller.rb
@@ -38,17 +38,6 @@ def group_members
       def groups
         super.with_deletion_schedule
       end
-
-      override :group_params
-      def group_params
-        modify_group_params(super)
-      end
-
-      def modify_group_params(params)
-        limit = params.delete(:repository_size_limit)
-        params[:repository_size_limit] = ::Gitlab::Utils.try_megabytes_to_bytes(limit) if limit
-        params
-      end
     end
   end
 end
diff --git a/ee/spec/controllers/admin/groups_controller_spec.rb b/ee/spec/controllers/admin/groups_controller_spec.rb
index 7ee3a006c5afd7e99dfa3351a93b3b474253a619..c368a0c34fd8b0185ad4bce0ea77f40f7e159ea0 100644
--- a/ee/spec/controllers/admin/groups_controller_spec.rb
+++ b/ee/spec/controllers/admin/groups_controller_spec.rb
@@ -31,6 +31,20 @@
     end
   end
 
+  describe 'POST #create', :with_current_organization do
+    subject(:post_request) { post :create, params: { group: params } }
+
+    context 'when repository size limit is provided' do
+      let(:params) { { path: 'test', name: 'test', repository_size_limit: '5000' } }
+
+      it 'creates a group with a correct repository limit' do
+        expect { post_request }.to change { Group.count }.by(1)
+
+        expect(Group.last.repository_size_limit).to eq(5000.megabytes)
+      end
+    end
+  end
+
   describe 'PUT #update' do
     it 'converts the user entered MiB value into bytes' do
       put :update, params: { id: group, group: { repository_size_limit: '5000' } }