diff --git a/qa/qa/page/merge_request/show.rb b/qa/qa/page/merge_request/show.rb
index a0bebf6bd7a7fe52ed94b3fc78bb1719d09ca452..98e22890cc5be5d8a2d9f7388bf947e098fc7f42 100644
--- a/qa/qa/page/merge_request/show.rb
+++ b/qa/qa/page/merge_request/show.rb
@@ -318,11 +318,15 @@ def rebase!
         end
 
         def merge_immediately!
-          if has_element?(:merge_moment_dropdown)
-            click_element(:merge_moment_dropdown, skip_finished_loading_check: true)
-            click_element(:merge_immediately_menu_item, skip_finished_loading_check: true)
-          else
-            click_element(:merge_button, skip_finished_loading_check: true)
+          retry_until(reload: true, sleep_interval: 1, max_attempts: 12) do
+            if has_element?(:merge_moment_dropdown)
+              click_element(:merge_moment_dropdown, skip_finished_loading_check: true)
+              click_element(:merge_immediately_menu_item, skip_finished_loading_check: true)
+            else
+              click_element(:merge_button, skip_finished_loading_check: true)
+            end
+
+            merged?
           end
         end