diff --git a/test/replication-luatest/qpromote_several_outstanding_promotes_test.lua b/test/replication-luatest/qpromote_several_outstanding_promotes_test.lua
new file mode 100644
index 0000000000000000000000000000000000000000..67e6f19852bde246f266246cc359244222010fb1
--- /dev/null
+++ b/test/replication-luatest/qpromote_several_outstanding_promotes_test.lua
@@ -0,0 +1,112 @@
+local t = require('luatest')
+local common = require('test.replication-luatest.qpromote_common')
+
+local g = common.make_test_group({nodes=5, quorum=3})
+
+-- The idea here is that in a cluster of 5 nodes we can have 2 nodes
+-- being unresponsive and cluster still should continue. In this case two
+-- nodes become unresponsive by emitting promotes that get stuck.
+g.test_two_stuck_outstanding_promotes = function(g)
+    local n1 = g.cluster.servers[1]
+    local n2 = g.cluster.servers[2]
+    local n3 = g.cluster.servers[3]
+
+    -- Both n1 and n2 have hard time pushing out their promotes.
+    common.spawn_stuck_promote(n1)
+    common.spawn_stuck_promote(n2)
+
+    common.promote(n3)
+
+    n3:exec(function()
+        box.space.test:replace({ 1 })
+    end)
+
+    common.remove_wal_delay_on_xrow_type(n1)
+    common.remove_wal_delay_on_xrow_type(n2)
+
+    for _, server in ipairs(g.cluster.servers) do
+        server:wait_for_vclock_of(n3)
+
+        t.assert_equals(server:exec(function()
+            return box.space.test:get { 1 }
+        end), { 1 })
+    end
+
+    common.ensure_healthy(g.cluster.servers)
+
+    common.promote(n1)
+    n1:exec(function()
+        box.space.test:replace({ 2 })
+    end)
+
+    for _, server in ipairs(g.cluster.servers) do
+        t.assert_equals(server:exec(function()
+            return box.space.test:get { 2 }
+        end), { 2 })
+    end
+
+    common.ensure_healthy(g.cluster.servers)
+end
+
+-- Variation of the previous test, but here nodes get stuck on confirm request
+g.test_two_stuck_outstanding_confirms = function(g)
+    local n1 = g.cluster.servers[1]
+    local n2 = g.cluster.servers[2]
+    local n3 = g.cluster.servers[3]
+
+    -- Both n1 and n2 have hard time pushing out their confirms.
+    common.spawn_promote_stuck_on_confirm(n1)
+    common.spawn_promote_stuck_on_confirm(n2)
+
+    common.promote(n3)
+
+    n3:exec(function()
+        box.space.test:replace({ 1 })
+    end)
+
+    common.remove_wal_delay_on_xrow_type(n1)
+    common.remove_wal_delay_on_xrow_type(n2)
+
+    for _, server in ipairs(g.cluster.servers) do
+        server:wait_for_vclock_of(n3)
+
+        t.assert_equals(server:exec(function()
+            return box.space.test:get { 1 }
+        end), { 1 })
+    end
+
+    common.ensure_healthy(g.cluster.servers)
+
+    common.promote(n1)
+    n1:exec(function()
+        box.space.test:replace({ 2 })
+    end)
+
+    for _, server in ipairs(g.cluster.servers) do
+        t.assert_equals(server:exec(function()
+            return box.space.test:get { 2 }
+        end), { 2 })
+    end
+
+    common.ensure_healthy(g.cluster.servers)
+end
+
+g.test_two_dependent_promotes = function (g)
+    local n1 = g.cluster.servers[1]
+    local n2 = g.cluster.servers[2]
+
+    -- emit promote without confirming it
+    common.spawn_promote_stuck_on_confirm(n1)
+
+    -- wait until everybody has this pending promote
+    for _, server in ipairs(g.cluster.servers) do
+        common.wait_for_promote_queue_len(server, 1)
+    end
+
+    -- n2's promote is logicaly dependent on n1's promote
+    common.promote(n2)
+
+    common.remove_wal_delay_on_xrow_type(n1)
+
+    common.ensure_healthy(g.cluster.servers)
+end
diff --git a/test/replication-luatest/suite.ini b/test/replication-luatest/suite.ini
index c50a5070d5f531ffe75ff46fcd03fdef76e435db..3559ecd6bdf0084a00fdf041ff7689b718b05356 100644
--- a/test/replication-luatest/suite.ini
+++ b/test/replication-luatest/suite.ini
@@ -2,4 +2,4 @@
 core = luatest
 description = replication luatests
 is_parallel = True
-release_disabled = gh_5295_split_brain_test.lua gh_6036_qsync_order_test.lua gh_6842_qsync_applier_order_test.lua gh_6033_box_promote_demote_test.lua gh_7253_election_long_wal_write_test.lua gh_7086_box_issue_promote_assert_test.lua qpromote_aba_leader_test.lua qpromote_diverging_limbo_owner_test.lua qpromote_transient_wal_error_on_promote_write_test.lua
+release_disabled = gh_5295_split_brain_test.lua gh_6036_qsync_order_test.lua gh_6842_qsync_applier_order_test.lua gh_6033_box_promote_demote_test.lua gh_7253_election_long_wal_write_test.lua gh_7086_box_issue_promote_assert_test.lua qpromote_aba_leader_test.lua qpromote_diverging_limbo_owner_test.lua qpromote_transient_wal_error_on_promote_write_test.lua qpromote_several_outstanding_promotes_test.lua