diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index 3b7080756537687a26e6677f51fb9d0e23e4ab11..4353e14e1bdf2807b7a7ddd0c93bb2595d8c7a41 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -514,6 +514,8 @@ DropSubscription(DropSubscriptionStmt *stmt)
 	/* Kill the apply worker so that the slot becomes accessible. */
 	logicalrep_worker_stop(subid);
 
+	LWLockRelease(LogicalRepLauncherLock);
+
 	/* Remove the origin tracking if exists. */
 	snprintf(originname, sizeof(originname), "pg_%u", subid);
 	originid = replorigin_by_name(originname, true);