diff --git a/test/replication/errinj.result b/test/replication/errinj.result
index 089d8f90bc16b66b43407dd63e3d18346dc2bd06..0fd36ba92d07f60960f12ee21fbcc9d115a33059 100644
--- a/test/replication/errinj.result
+++ b/test/replication/errinj.result
@@ -215,3 +215,93 @@ test_run:cmd("cleanup server replica")
 ---
 - true
 ...
+box.cfg{replication_timeout = 0.01}
+---
+...
+box.schema.user.grant("guest", "replication")
+---
+...
+test_run:cmd("start server replica")
+---
+- true
+...
+test_run:cmd("switch replica")
+---
+- true
+...
+fiber = require'fiber'
+---
+...
+while box.info.replication[1].upstream.message ~= 'timed out' do fiber.sleep(0.0001) end
+---
+...
+test_run:cmd("switch default")
+---
+- true
+...
+box.cfg{replication_timeout = 0.05}
+---
+...
+test_run:cmd("switch replica")
+---
+- true
+...
+-- wait for reconnect
+while box.info.replication[1].upstream.status ~= 'follow' do fiber.sleep(0.0001) end
+---
+...
+box.info.replication[1].upstream.status
+---
+- follow
+...
+-- wait for ack timeout
+while box.info.replication[1].upstream.message ~= 'timed out' do fiber.sleep(0.0001) end
+---
+...
+test_run:cmd("switch default")
+---
+- true
+...
+box.cfg{replication_timeout = 5}
+---
+...
+test_run:cmd("switch replica")
+---
+- true
+...
+-- wait for reconnect
+while box.info.replication[1].upstream.status ~= 'follow' do fiber.sleep(0.0001) end
+---
+...
+-- wait for ack timeout again, should be ok
+fiber.sleep(0.01)
+---
+...
+{box.info.replication[1].upstream.status, box.info.replication[1].upstream.message}
+---
+- - follow
+...
+test_run:cmd("stop server default")
+---
+- true
+...
+test_run:cmd("deploy server default")
+---
+- true
+...
+test_run:cmd("start server default")
+---
+- true
+...
+test_run:cmd("switch default")
+---
+- true
+...
+test_run:cmd("stop server replica")
+---
+- true
+...
+test_run:cmd("cleanup server replica")
+---
+- true
+...
diff --git a/test/replication/errinj.test.lua b/test/replication/errinj.test.lua
index 9e6fbc53e928f41f2894646a8550e3daa79bb9dc..b50b6b0cb63b4b9f5e5a081b90ac9e18c301ff47 100644
--- a/test/replication/errinj.test.lua
+++ b/test/replication/errinj.test.lua
@@ -92,3 +92,37 @@ test_run:cmd("start server default")
 test_run:cmd("switch default")
 test_run:cmd("stop server replica")
 test_run:cmd("cleanup server replica")
+
+box.cfg{replication_timeout = 0.01}
+box.schema.user.grant("guest", "replication")
+
+test_run:cmd("start server replica")
+test_run:cmd("switch replica")
+fiber = require'fiber'
+while box.info.replication[1].upstream.message ~= 'timed out' do fiber.sleep(0.0001) end
+
+test_run:cmd("switch default")
+box.cfg{replication_timeout = 0.05}
+test_run:cmd("switch replica")
+-- wait for reconnect
+while box.info.replication[1].upstream.status ~= 'follow' do fiber.sleep(0.0001) end
+box.info.replication[1].upstream.status
+-- wait for ack timeout
+while box.info.replication[1].upstream.message ~= 'timed out' do fiber.sleep(0.0001) end
+
+test_run:cmd("switch default")
+box.cfg{replication_timeout = 5}
+
+test_run:cmd("switch replica")
+-- wait for reconnect
+while box.info.replication[1].upstream.status ~= 'follow' do fiber.sleep(0.0001) end
+-- wait for ack timeout again, should be ok
+fiber.sleep(0.01)
+{box.info.replication[1].upstream.status, box.info.replication[1].upstream.message}
+
+test_run:cmd("stop server default")
+test_run:cmd("deploy server default")
+test_run:cmd("start server default")
+test_run:cmd("switch default")
+test_run:cmd("stop server replica")
+test_run:cmd("cleanup server replica")