diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c
index 5227eab414f3f93d79c09a1def7b6c20c1522352..4fcf3d4376ccdc2b01d459ad11da1f01cad5e47f 100644
--- a/src/backend/replication/walsender.c
+++ b/src/backend/replication/walsender.c
@@ -1291,7 +1291,7 @@ WalSndLoop(void)
 					ping_sent = true;
 					/* Try to flush pending output to the client */
 					if (pq_flush_if_writable() != 0)
-						break;
+						goto send_failure;
 				}
 			}