diff --git a/tftf/framework/main.c b/tftf/framework/main.c
index 2350b96..f75cb07 100644
--- a/tftf/framework/main.c
+++ b/tftf/framework/main.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018-2020, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2022, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -25,6 +25,8 @@
 #include <tftf_lib.h>
 #include <timer.h>
 
+#define MIN_RETRY_TO_POWER_ON_LEAD_CPU       10
+
 /* version information for TFTF */
 extern const char version_string[];
 
@@ -309,6 +311,7 @@
 static void __dead2 hand_over_to_lead_cpu(void)
 {
 	int ret;
+	unsigned int tftf_cpu_pwr_on_ctr = 0U;
 	unsigned int mpid = read_mpidr_el1() & MPID_MASK;
 	unsigned int core_pos = platform_get_core_pos(mpid);
 
@@ -321,8 +324,24 @@
 	 * doesn't matter because it will be overwritten by prepare_next_test().
 	 * Pass a NULL pointer to easily catch the problem in case something
 	 * goes wrong.
+	 *
+	 * In CI with four world system (Normal, Secure, Root and Realm), on few
+	 * instances, while the framework tries to turn on the CPU for next-test
+	 * it fails to do so and receives error code (-4 : ALREADY_ON).
+	 * This is due to the fact that the lead-cpu is still powering down as
+	 * per EL-3 but invisible to EL-2. Hence retrying it in a loop with a
+	 * small delay in bewteen for certain iterations will resolve it.
 	 */
-	ret = tftf_cpu_on(lead_cpu_mpid, 0, 0);
+	while (tftf_cpu_pwr_on_ctr < MIN_RETRY_TO_POWER_ON_LEAD_CPU) {
+		ret = tftf_cpu_on(lead_cpu_mpid, 0, 0);
+		if (ret == PSCI_E_SUCCESS) {
+			break;
+		} else {
+			tftf_cpu_pwr_on_ctr += 1;
+			waitms(1);
+		}
+	}
+
 	if (ret != PSCI_E_SUCCESS) {
 		ERROR("CPU%u: Failed to power on lead CPU%u (%d)\n",
 			core_pos, platform_get_core_pos(lead_cpu_mpid), ret);
