diff --git a/app/helpers/diff_helper.rb b/app/helpers/diff_helper.rb
index e05adc5cd0ed168eb7bf09b248554e200f7c3a22..6868fed711e02b933ac27cf9488c59eed76dac14 100644
--- a/app/helpers/diff_helper.rb
+++ b/app/helpers/diff_helper.rb
@@ -227,7 +227,7 @@ def render_fork_suggestion
   end
 
   def conflicts(allow_tree_conflicts: false)
-    return unless merge_request.cannot_be_merged?
+    return unless merge_request.cannot_be_merged? && merge_request.source_branch_exists? && merge_request.target_branch_exists?
 
     conflicts_service = MergeRequests::Conflicts::ListService.new(merge_request, allow_tree_conflicts: allow_tree_conflicts) # rubocop:disable CodeReuse/ServiceClass
 
diff --git a/spec/helpers/diff_helper_spec.rb b/spec/helpers/diff_helper_spec.rb
index 78c0d0a2b119163f99c60384e9f21e42537eec4b..a46f8c13f002744d9a97446f373d5304d8496f1a 100644
--- a/spec/helpers/diff_helper_spec.rb
+++ b/spec/helpers/diff_helper_spec.rb
@@ -483,7 +483,18 @@
   end
 
   describe '#conflicts' do
-    let(:merge_request) { instance_double(MergeRequest, cannot_be_merged?: true) }
+    let(:merge_request) do
+      instance_double(
+        MergeRequest,
+        cannot_be_merged?: cannot_be_merged?,
+        source_branch_exists?: source_branch_exists?,
+        target_branch_exists?: target_branch_exists?
+      )
+    end
+
+    let(:cannot_be_merged?) { true }
+    let(:source_branch_exists?) { true }
+    let(:target_branch_exists?) { true }
     let(:can_be_resolved_in_ui?) { true }
     let(:allow_tree_conflicts) { false }
     let(:files) { [instance_double(Gitlab::Conflict::File, path: 'a')] }
@@ -508,7 +519,23 @@
     end
 
     context 'when merge request can be merged' do
-      let(:merge_request) { instance_double(MergeRequest, cannot_be_merged?: false) }
+      let(:cannot_be_merged?) { false }
+
+      it 'returns nil' do
+        expect(helper.conflicts).to be_nil
+      end
+    end
+
+    context 'when source branch does not exist' do
+      let(:source_branch_exists?) { false }
+
+      it 'returns nil' do
+        expect(helper.conflicts).to be_nil
+      end
+    end
+
+    context 'when target branch does not exist' do
+      let(:target_branch_exists?) { false }
 
       it 'returns nil' do
         expect(helper.conflicts).to be_nil