diff --git a/src/box/schema.cc b/src/box/schema.cc
index fab7544f248dd61d95523308a267ccbd1368cf9a..456eef429dd363e7ec72a700070ffedfbbccea53 100644
--- a/src/box/schema.cc
+++ b/src/box/schema.cc
@@ -646,7 +646,7 @@ sequence_cache_find(uint32_t id)
 {
 	struct sequence *seq = sequence_by_id(id);
 	if (seq == NULL)
-		tnt_raise(ClientError, ER_NO_SUCH_SEQUENCE, int2str(id));
+		diag_set(ClientError, ER_NO_SUCH_SEQUENCE, int2str(id));
 	return seq;
 }
 
diff --git a/test/box/sequence.result b/test/box/sequence.result
index 0a6cfee2c49be8c572bc8931e54a5892432ed067..32a094d6f239ff57a0d717c114ebe09b21b73c17 100644
--- a/test/box/sequence.result
+++ b/test/box/sequence.result
@@ -2102,6 +2102,23 @@ s:drop()
 ---
 ...
 --
+-- gh-4753: accessing dropped sequence should yield correct error
+--
+s = box.schema.sequence.create('s')
+---
+...
+s:drop()
+---
+...
+s:next()
+---
+- error: Sequence '1' does not exist
+...
+s:reset()
+---
+- error: Sequence '1' does not exist
+...
+--
 -- Check that altering parts of a primary index with a sequence
 -- attached requires sequence update. Renaming fields does not.
 --
diff --git a/test/box/sequence.test.lua b/test/box/sequence.test.lua
index 8e00571e50d00e57dc268ee6196ebcdb52addf41..d8a212fab0f6a96724068641ae46645414736a31 100644
--- a/test/box/sequence.test.lua
+++ b/test/box/sequence.test.lua
@@ -710,6 +710,14 @@ s.index.pk:alter{sequence = {field = 'x.a.b[1]'}}
 s:replace{{a = {b = {box.NULL}}}} -- ok
 s:drop()
 
+--
+-- gh-4753: accessing dropped sequence should yield correct error
+--
+s = box.schema.sequence.create('s')
+s:drop()
+s:next()
+s:reset()
+
 --
 -- Check that altering parts of a primary index with a sequence
 -- attached requires sequence update. Renaming fields does not.