diff --git a/app/services/draft_notes/destroy_service.rb b/app/services/draft_notes/destroy_service.rb
index ddca0debb03796761dc3f1ff8a9132ff1b321bf5..6c7b0dfdbd707c8fa5c5370c59099a1169873e65 100644
--- a/app/services/draft_notes/destroy_service.rb
+++ b/app/services/draft_notes/destroy_service.rb
@@ -15,9 +15,11 @@ def execute(draft = nil)
     private
 
     def clear_highlight_diffs_cache(drafts)
-      if drafts.any? { |draft| draft.diff_file&.unfolded? }
-        merge_request.diffs.clear_cache
-      end
+      merge_request.diffs.clear_cache if unfolded_drafts?(drafts)
+    end
+
+    def unfolded_drafts?(drafts)
+      drafts.any? { |draft| draft.diff_file&.unfolded? }
     end
   end
 end
diff --git a/lib/api/draft_notes.rb b/lib/api/draft_notes.rb
index 6fadc68233dd605223b5365d75d53f4fcf62fcd7..3d046ec4a9bae634676fe6cde8a9b9e13fc87aa2 100644
--- a/lib/api/draft_notes.rb
+++ b/lib/api/draft_notes.rb
@@ -22,7 +22,9 @@ def get_draft_note(params:)
       end
 
       def delete_draft_note(draft_note)
-        ::DraftNotes::DestroyService.new(user_project, current_user).execute(draft_note)
+        ::DraftNotes::DestroyService
+          .new(merge_request(params: params), current_user)
+          .execute(draft_note)
       end
 
       def publish_draft_note(params:)
diff --git a/spec/requests/api/draft_notes_spec.rb b/spec/requests/api/draft_notes_spec.rb
index f15ed6e2d5f15cbffda8598b0cf765ae8dc1e217..fc465fa7c425892c24b4e18a15b877a76108a698 100644
--- a/spec/requests/api/draft_notes_spec.rb
+++ b/spec/requests/api/draft_notes_spec.rb
@@ -87,6 +87,10 @@
       let!(:deleted_draft_note_id) { draft_note_by_current_user.id }
 
       before do
+        allow_next_instance_of(DraftNotes::DestroyService) do |service|
+          allow(service).to receive(:unfolded_drafts?).and_return(true)
+        end
+
         delete api(
           "#{base_url}/#{draft_note_by_current_user.id}",
           user