diff --git a/ee/app/services/auto_merge/merge_when_checks_pass_service.rb b/ee/app/services/auto_merge/merge_when_checks_pass_service.rb
index 78d73bde8b77f9951f7ff3b5e26b8f29047618d8..d738219e0703968b69e6ab1daa89a1b7b6f4d137 100644
--- a/ee/app/services/auto_merge/merge_when_checks_pass_service.rb
+++ b/ee/app/services/auto_merge/merge_when_checks_pass_service.rb
@@ -30,6 +30,7 @@ def add_system_note(merge_request)
     def check_availability(merge_request)
       return false if Feature.disabled?(:merge_when_checks_pass, merge_request.project)
       return false unless merge_request.approval_feature_available?
+      return false if merge_request.project.merge_trains_enabled?
 
       super ||
         !merge_request.approved? ||
diff --git a/ee/spec/services/auto_merge/merge_when_checks_pass_service_spec.rb b/ee/spec/services/auto_merge/merge_when_checks_pass_service_spec.rb
index f7039c34c35dacbf359ce10ea145c2c92506615b..082811fb682e58da0fa18e84d1ecf8b23a75f413 100644
--- a/ee/spec/services/auto_merge/merge_when_checks_pass_service_spec.rb
+++ b/ee/spec/services/auto_merge/merge_when_checks_pass_service_spec.rb
@@ -16,6 +16,13 @@
     subject { service.available_for?(mr_merge_if_green_enabled) }
 
     let_it_be(:approver) { create(:user) }
+    let(:feature_flag) { true }
+    let(:draft_status) { true }
+    let(:blocked_status) { true }
+    let(:discussions_status) { true }
+    let(:additional_feature_flag) { true }
+    let(:pipeline_status) { :running }
+    let(:approvals_required) { 1 }
 
     before do
       create(:ci_pipeline, pipeline_status,
@@ -25,41 +32,33 @@
       mr_merge_if_green_enabled.update_head_pipeline
 
       approval_rule.users << approver
+      stub_feature_flags(merge_when_checks_pass: feature_flag,
+        additional_merge_when_checks_ready: additional_feature_flag)
+      mr_merge_if_green_enabled.update!(title: 'Draft: check') if draft_status
+      allow(mr_merge_if_green_enabled).to receive(:merge_blocked_by_other_mrs?).and_return(blocked_status)
+      allow(mr_merge_if_green_enabled).to receive(:mergeable_discussions_state?).and_return(discussions_status)
     end
 
-    context 'when feature flag "merge_when_checks_pass" is enabled' do
-      before do
-        stub_feature_flags(merge_when_checks_pass: project, additional_merge_when_checks_ready: additional_feature_flag)
-        mr_merge_if_green_enabled.update!(title: 'Draft: check') if draft_status
-        allow(mr_merge_if_green_enabled).to receive(:merge_blocked_by_other_mrs?).and_return(blocked_status)
-        allow(mr_merge_if_green_enabled).to receive(:mergeable_discussions_state?).and_return(discussions_status)
-      end
-
-      where(:pipeline_status, :approvals_required, :draft_status, :blocked_status, :discussions_status,
-        :additional_feature_flag, :result) do
-        :running | 0 | true | true | false | true | true
-        :running | 0 | false | false | true | true | true
-        :success | 0 | false | false | true | true | false
-        :success | 0 | true | true | false | true | true
-        :success | 0 | true | true | true | false | false
-        :running | 1 | true | true | false | true | true
-        :success | 1 | true | true | false | true | true
-        :success | 1 | false | false | true | true | true
-        :running | 1 | false | false | true | true | true
-      end
+    where(:pipeline_status, :approvals_required, :draft_status, :blocked_status, :discussions_status,
+      :additional_feature_flag, :result) do
+      :running | 0 | true | true | false | true | true
+      :running | 0 | false | false | true | true | true
+      :success | 0 | false | false | true | true | false
+      :success | 0 | true | true | false | true | true
+      :success | 0 | true | true | true | false | false
+      :running | 1 | true | true | false | true | true
+      :success | 1 | true | true | false | true | true
+      :success | 1 | false | false | true | true | true
+      :running | 1 | false | false | true | true | true
+    end
 
-      with_them do
-        it { is_expected.to eq result }
-      end
+    with_them do
+      it { is_expected.to eq result }
     end
 
     context 'when feature flags merge_when_checks_pass and additional_merge_when_checks_ready are disabled"' do
-      before do
-        stub_feature_flags(merge_when_checks_pass: false, additional_merge_when_checks_ready: false)
-        mr_merge_if_green_enabled.update!(title: 'Draft: check') if draft_status
-        allow(mr_merge_if_green_enabled).to receive(:merge_blocked_by_other_mrs?).and_return(blocked_status)
-        allow(mr_merge_if_green_enabled).to receive(:mergeable_discussions_state?).and_return(discussions_status)
-      end
+      let(:additional_feature_flag) { false }
+      let(:feature_flag) { false }
 
       where(:pipeline_status, :approvals_required, :draft_status, :blocked_status, :discussions_status, :result) do
         :running | 0 | true  | true | false | false
@@ -96,6 +95,14 @@
 
       it { is_expected.to eq false }
     end
+
+    context 'when merge trains are enabled' do
+      before do
+        allow(mr_merge_if_green_enabled.project).to receive(:merge_trains_enabled?).and_return(true)
+      end
+
+      it { is_expected.to eq false }
+    end
   end
 
   describe "#execute" do