diff --git a/tcp_tests/tests/system/test_mcp_update.py b/tcp_tests/tests/system/test_mcp_update.py
index 5ec2627..a8a8493 100644
--- a/tcp_tests/tests/system/test_mcp_update.py
+++ b/tcp_tests/tests/system/test_mcp_update.py
@@ -757,7 +757,7 @@
         r, errors = salt.enforce_state("I@jenkins:client", "jenkins.client")
         assert errors is None
 
-    @retry(AssertionError, stop_max_attempt_number=2, wait_fixed=5000)
+    @retry(stop_max_attempt_number=2, wait_fixed=5000)
     @pytest.mark.grab_versions
     @pytest.mark.parametrize('target', get_control_plane_targets())
     @pytest.mark.run_mcp_update
@@ -776,7 +776,7 @@
 
         assert job_result == 'SUCCESS', job_description
 
-    @retry(AssertionError, stop_max_attempt_number=2, wait_fixed=5000)
+    @retry(stop_max_attempt_number=2, wait_fixed=5000)
     @pytest.mark.grab_versions
     @pytest.mark.run_mcp_update
     def test__update__data_plane(self, drivetrain_actions, salt_actions):
@@ -794,7 +794,7 @@
 
         assert job_result == 'SUCCESS', job_description
 
-    @retry(AssertionError, stop_max_attempt_number=2, wait_fixed=5000)
+    @retry(stop_max_attempt_number=2, wait_fixed=5000)
     @pytest.mark.grab_versions
     @pytest.mark.run_mcp_update
     def test__update__computes(self, drivetrain_actions):
diff --git a/tcp_tests/tests/system/test_upgrade_pike_queens.py b/tcp_tests/tests/system/test_upgrade_pike_queens.py
index 7734c3c..f457901 100644
--- a/tcp_tests/tests/system/test_upgrade_pike_queens.py
+++ b/tcp_tests/tests/system/test_upgrade_pike_queens.py
@@ -94,7 +94,7 @@
         Scenario:
             1. Perform the pre-upgrade activities
             2. Upgrade control VMs
-            3. Upgrade gatewey nodes
+            3. Upgrade gateway nodes
             4. Upgrade compute nodes
             5. Perform the post-upgrade activities
             6. If jobs are passed then start tests with cvp-sanity job
@@ -200,7 +200,7 @@
             'OS_UPGRADE': True
         }
 
-        @retry(AssertionError, stop_max_attempt_number=2, wait_fixed=5000)
+        @retry(stop_max_attempt_number=2, wait_fixed=5000)
         def run_deploy_upgrade_control():
             # ####### Run job for ctl* ###
             job_parameters["TARGET_SERVERS"] = "ctl*"
@@ -209,6 +209,8 @@
                 job_parameters=job_parameters)
             assert job_result == 'SUCCESS', job_description
 
+        run_deploy_upgrade_control()
+
         if salt_actions.cmd_run("mdb*", "test.ping")[0].keys():
             # ####### Run job for mdb* ###
             job_parameters["TARGET_SERVERS"] = "mdb*"
@@ -243,7 +245,7 @@
             'TARGET_SERVERS': "gtw*"
         }
 
-        @retry(AssertionError, stop_max_attempt_number=2, wait_fixed=5000)
+        @retry(stop_max_attempt_number=2, wait_fixed=5000)
         def run_deploy_upgrade_ovs_gateway():
             if salt_actions.cmd_run("gtw*", "test.ping")[0].keys():
                 job_result, job_description = dt.start_job_on_jenkins(
@@ -253,6 +255,8 @@
             else:
                 LOG.info("This deployment doesn't have gtw* nodes, \
                 so skip this step")
+
+        run_deploy_upgrade_ovs_gateway()
         # ############ Upgrade compute nodes  ############
         show_step(4)
         LOG.info('Upgrade compute nodes')
@@ -264,13 +268,15 @@
             'TARGET_SERVERS': "cmp*"
         }
 
-        @retry(AssertionError, stop_max_attempt_number=2, wait_fixed=5000)
+        @retry(stop_max_attempt_number=2, wait_fixed=5000)
         def run_deploy_upgrade_compute():
             job_result, job_description = dt.start_job_on_jenkins(
                 job_name=job_name,
                 job_parameters=job_parameters)
             assert job_result == 'SUCCESS', job_description
 
+        run_deploy_upgrade_compute()
+
         # ############ Perform the post-upgrade activities ##########
         show_step(5)
         LOG.info('Add parameters._param.openstack_upgrade_enabled false'
