diff --git a/lib/gitlab/quick_actions/merge_request_actions.rb b/lib/gitlab/quick_actions/merge_request_actions.rb
index 842d4ef482bfffbe939e4e836a74280c47321fbf..f7c0f63b60e3e3958d4d004b6e520d4fe7982f84 100644
--- a/lib/gitlab/quick_actions/merge_request_actions.rb
+++ b/lib/gitlab/quick_actions/merge_request_actions.rb
@@ -23,7 +23,9 @@ module MergeRequestActions
           end
         end
         execution_message do
-          if preferred_strategy = preferred_auto_merge_strategy(quick_action_target)
+          if params[:merge_request_diff_head_sha].blank?
+            _("Merge request diff sha parameter is required for the merge quick action.")
+          elsif preferred_strategy = preferred_auto_merge_strategy(quick_action_target)
             _("Scheduled to merge this merge request (%{strategy}).") % { strategy: preferred_strategy.humanize }
           else
             _('Merged this merge request.')
@@ -35,6 +37,8 @@ module MergeRequestActions
             merge_orchestration_service.can_merge?(quick_action_target)
         end
         command :merge do
+          next unless params[:merge_request_diff_head_sha].present?
+
           @updates[:merge] = params[:merge_request_diff_head_sha]
         end
 
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 5f040ea020347a457d253f30d6741a5f546dfb18..3d714035d5ddc2fec55d1b68d84aaf773d6ddee5 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -23066,6 +23066,9 @@ msgstr ""
 msgid "Merge request dependencies"
 msgstr ""
 
+msgid "Merge request diff sha parameter is required for the merge quick action."
+msgstr ""
+
 msgid "Merge request events"
 msgstr ""
 
diff --git a/spec/services/quick_actions/interpret_service_spec.rb b/spec/services/quick_actions/interpret_service_spec.rb
index afeb95a3ca3850e121b5a00358bd06ea85c17777..8000c7efb2b1bbc4444be756c305fbdc775fdb14 100644
--- a/spec/services/quick_actions/interpret_service_spec.rb
+++ b/spec/services/quick_actions/interpret_service_spec.rb
@@ -799,10 +799,9 @@
         let(:project) { repository_project }
         let(:service) { described_class.new(project, developer, {}) }
 
-        it 'precheck passes and returns merge command' do
-          _, updates, _ = service.execute('/merge', merge_request)
-
-          expect(updates).to eq(merge: nil)
+        it_behaves_like 'failed command', 'Merge request diff sha parameter is required for the merge quick action.' do
+          let(:content) { "/merge" }
+          let(:issuable) { merge_request }
         end
       end