diff --git a/src/box/memtx_bitset.cc b/src/box/memtx_bitset.cc
index c3eff30fcd2559d8a2276a3d7f09a488b4153e33..4c4b956332d3a44394301b7a2737cc96278c6aa3 100644
--- a/src/box/memtx_bitset.cc
+++ b/src/box/memtx_bitset.cc
@@ -368,7 +368,8 @@ MemtxBitset::initIterator(struct iterator *iterator, enum iterator_type type,
 						       bitset_key_size);
 			break;
 		default:
-			return initIterator(iterator, type, key, part_count);
+			return Index::initIterator(iterator, type, key,
+						   part_count);
 		}
 
 		if (rc != 0) {
diff --git a/src/box/memtx_rtree.cc b/src/box/memtx_rtree.cc
index e4d590236d502b2d912c202c3b329b416aa4cd70..5a3c9c98d432a81d5875bcdab69b542dc6987df4 100644
--- a/src/box/memtx_rtree.cc
+++ b/src/box/memtx_rtree.cc
@@ -277,7 +277,7 @@ MemtxRTree::initIterator(struct iterator *iterator, enum iterator_type type,
 		op = SOP_NEIGHBOR;
 		break;
 	default:
-		return initIterator(iterator, type, key, part_count);
+		return Index::initIterator(iterator, type, key, part_count);
 	}
 	rtree_search(&m_tree, &rect, op, &it->impl);
 }
diff --git a/src/box/sophia_index.cc b/src/box/sophia_index.cc
index 122d81b9e7acc0cf9a329737ea6a2fd2d5127b08..8f4f07efb85d6edc5478030f798741b35113426c 100644
--- a/src/box/sophia_index.cc
+++ b/src/box/sophia_index.cc
@@ -733,7 +733,7 @@ SophiaIndex::initIterator(struct iterator *ptr,
 	case ITER_LT: compare = "<";
 		break;
 	default:
-		return initIterator(ptr, type, key, part_count);
+		return Index::initIterator(ptr, type, key, part_count);
 	}
 	it->cursor = sp_cursor(env);
 	if (it->cursor == NULL)
diff --git a/test/box/bitset.result b/test/box/bitset.result
index 09c0523e9b890c55d7bb421e8dfb238c8e9e46fc..1538452a865eaad1af89ccb62994f5481225ab00 100644
--- a/test/box/bitset.result
+++ b/test/box/bitset.result
@@ -1838,3 +1838,27 @@ dump(box.index.BITS_ANY_SET, 113)
 drop_space()
 ---
 ...
+------------------------------------------------------------------------------
+-- Misc
+------------------------------------------------------------------------------
+-- gh-1467: invalid iterator type
+space = box.schema.space.create('test')
+---
+...
+_ = space:create_index('primary', { type = 'hash', parts = {1, 'num'}, unique = true })
+---
+...
+_ = space:create_index('bitset', { type = 'bitset', parts = {2, 'num'}, unique = false })
+---
+...
+space.index.bitset:select({1}, { iterator = 'OVERLAPS'})
+---
+- error: Index 'bitset' (BITSET) of space 'test' (memtx) does not support requested
+    iterator type
+...
+space:drop()
+---
+...
+space = nil
+---
+...
diff --git a/test/box/bitset.test.lua b/test/box/bitset.test.lua
index 237f5646fd9834b07d366c8282184f889dad6d28..ad745156d8682dd5422547ef0e9a34e06e067f88 100644
--- a/test/box/bitset.test.lua
+++ b/test/box/bitset.test.lua
@@ -95,3 +95,15 @@ dump(box.index.BITS_ANY_SET, 84)
 dump(box.index.BITS_ANY_SET, 113)
 
 drop_space()
+
+------------------------------------------------------------------------------
+-- Misc
+------------------------------------------------------------------------------
+
+-- gh-1467: invalid iterator type
+space = box.schema.space.create('test')
+_ = space:create_index('primary', { type = 'hash', parts = {1, 'num'}, unique = true })
+_ = space:create_index('bitset', { type = 'bitset', parts = {2, 'num'}, unique = false })
+space.index.bitset:select({1}, { iterator = 'OVERLAPS'})
+space:drop()
+space = nil
diff --git a/test/box/hash.result b/test/box/hash.result
index fb8ec35fe5b467771bf0be209179c7c89ca2c53e..1d7618a4e62827f4c9c508623558908d1992b400 100644
--- a/test/box/hash.result
+++ b/test/box/hash.result
@@ -717,3 +717,18 @@ box.space.test:insert{1}
 box.space.test:drop()
 ---
 ...
+-- gh-1467: invalid iterator type
+space = box.schema.space.create('test')
+---
+...
+index = space:create_index('primary', { type = 'hash' })
+---
+...
+space:select({1}, {iterator = 'BITS_ALL_SET' } )
+---
+- error: Index 'primary' (HASH) of space 'test' (memtx) does not support requested
+    iterator type
+...
+space:drop()
+---
+...
diff --git a/test/box/hash.test.lua b/test/box/hash.test.lua
index 7fb2cb7c01cdbf092133c2f2922299419f30517f..ec157b926fafa95cd02484cebc95ce7185796562 100644
--- a/test/box/hash.test.lua
+++ b/test/box/hash.test.lua
@@ -307,3 +307,9 @@ _ = box.schema.create_space('test')
 _ = box.space.test:create_index('i',{parts={1,'STR'}})
 box.space.test:insert{1}
 box.space.test:drop()
+
+-- gh-1467: invalid iterator type
+space = box.schema.space.create('test')
+index = space:create_index('primary', { type = 'hash' })
+space:select({1}, {iterator = 'BITS_ALL_SET' } )
+space:drop()
diff --git a/test/box/rtree_misc.result b/test/box/rtree_misc.result
index 785976aec7a026d9371015b360091a0972e40c35..625b2670c2e6bb3ca0b044849f8f7bc47d5aefdf 100644
--- a/test/box/rtree_misc.result
+++ b/test/box/rtree_misc.result
@@ -690,6 +690,12 @@ i:select({0, 0, 0}, {iterator = 'neighbor'})
 - - [2, [2, 0, 0]]
   - [1, [1, 1, 1]]
 ...
+-- gh-1467: invalid iterator type
+i:select({1, 2, 3, 4, 5, 6}, {iterator = 'BITS_ALL_SET' } )
+---
+- error: Index 's' (RTREE) of space 's' (memtx) does not support requested iterator
+    type
+...
 s:drop()
 ---
 ...
diff --git a/test/box/rtree_misc.test.lua b/test/box/rtree_misc.test.lua
index cf061a77ce7950ed045404e7b07f6fa3814e5f99..3493f065500ae9d399c26064a6ab1acdf52955c9 100644
--- a/test/box/rtree_misc.test.lua
+++ b/test/box/rtree_misc.test.lua
@@ -241,4 +241,7 @@ i:select({0, 0, 0}, {iterator = 'neighbor'})
 i:alter{distance = 'manhattan' }
 i:select({0, 0, 0}, {iterator = 'neighbor'})
 
+-- gh-1467: invalid iterator type
+i:select({1, 2, 3, 4, 5, 6}, {iterator = 'BITS_ALL_SET' } )
+
 s:drop()
diff --git a/test/engine/iterator.result b/test/engine/iterator.result
index 4658f2094046d4995e8985d5c47095a9be5f2867..e2d72ecaad4cf90c09950785708ca0008a927d13 100644
--- a/test/engine/iterator.result
+++ b/test/engine/iterator.result
@@ -7,6 +7,10 @@ inspector = test_run.new()
 engine = inspector:get_cfg('engine')
 ---
 ...
+inspector:cmd("push filter '"..engine.."' to 'engine'")
+---
+- true
+...
 -- iterator (str)
 space = box.schema.space.create('test', { engine = engine })
 ---
@@ -2927,3 +2931,22 @@ t
 space:drop()
 ---
 ...
+-- gh-1467: invalid iterator type
+space = box.schema.space.create('test', { engine = engine })
+---
+...
+index = space:create_index('primary')
+---
+...
+space:select({}, {iterator = 'BITS_ALL_SET' } )
+---
+- error: Index 'primary' (TREE) of space 'test' (engine) does not support requested
+    iterator type
+...
+space:drop()
+---
+...
+inspector:cmd("clear filter")
+---
+- true
+...
diff --git a/test/engine/iterator.test.lua b/test/engine/iterator.test.lua
index 7e248521417025a455441208f7675086c6aa22ef..b5c424b05ee06e23242bf0c1c0843890714f7f08 100644
--- a/test/engine/iterator.test.lua
+++ b/test/engine/iterator.test.lua
@@ -1,6 +1,7 @@
 test_run = require('test_run')
 inspector = test_run.new()
 engine = inspector:get_cfg('engine')
+inspector:cmd("push filter '"..engine.."' to 'engine'")
 
 -- iterator (str)
 space = box.schema.space.create('test', { engine = engine })
@@ -91,3 +92,11 @@ t
 t = {} for state, v in index:pairs(box.tuple.new(tostring(77)), {iterator = 'LT'}) do table.insert(t, v) end
 t
 space:drop()
+
+-- gh-1467: invalid iterator type
+space = box.schema.space.create('test', { engine = engine })
+index = space:create_index('primary')
+space:select({}, {iterator = 'BITS_ALL_SET' } )
+space:drop()
+
+inspector:cmd("clear filter")