diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index 5de999928f..b38beba659 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -524,6 +524,7 @@ DropSubscription(DropSubscriptionStmt *stmt)
 	if (!stmt->drop_slot)
 	{
 		heap_close(rel, NoLock);
+		LWLockRelease(LogicalRepLauncherLock);
 		return;
 	}
 
@@ -558,6 +559,7 @@ DropSubscription(DropSubscriptionStmt *stmt)
 	pfree(cmd.data);
 
 	heap_close(rel, NoLock);
+	LWLockRelease(LogicalRepLauncherLock);
 }
 
 /*
