diff --git a/tests/unit/tracking.tcl b/tests/unit/tracking.tcl
index 9fdc4b79cd..1d1ad4044b 100644
--- a/tests/unit/tracking.tcl
+++ b/tests/unit/tracking.tcl
@@ -236,20 +236,14 @@ start_server {tags {"tracking network logreqres:skip"}} {
     }
 
     test {RESP3 Client gets tracking-redir-broken push message after cached key changed when rediretion client is terminated} {
+        # make sure r is working resp 3
+        r HELLO 3
         r CLIENT TRACKING on REDIRECT $redir_id
         $rd_sg SET key1 1
         r GET key1
         $rd_redirection QUIT
         assert_equal OK [$rd_redirection read]
         $rd_sg SET key1 2
-        set MAX_TRIES 100
-        set res -1
-        for {set i 0} {$i <= $MAX_TRIES && $res < 0} {incr i} {
-            set res [lsearch -exact [r PING] "tracking-redir-broken"]
-        }
-        assert {$res >= 0}
-        # Consume PING reply
-        assert_equal PONG [r read]
 
         # Reinstantiating after QUIT
         set rd_redirection [valkey_deferring_client]
@@ -257,6 +251,15 @@ start_server {tags {"tracking network logreqres:skip"}} {
         set redir_id [$rd_redirection read]
         $rd_redirection SUBSCRIBE __redis__:invalidate
         $rd_redirection read ; # Consume the SUBSCRIBE reply
+
+        # Wait to read the tracking-redir-broken
+        wait_for_condition 1000 50 {
+            [lsearch -exact [r PING] "tracking-redir-broken"]
+        } else {
+            fail "Failed to get redirect broken indication"
+        }
+         # Consume PING reply
+        assert_equal PONG [r read]
     }
 
     test {Different clients can redirect to the same connection} {