diff --git a/arangod/Indexes/IndexFactory.cpp b/arangod/Indexes/IndexFactory.cpp index ae2f789b3e..c0723b2851 100644 --- a/arangod/Indexes/IndexFactory.cpp +++ b/arangod/Indexes/IndexFactory.cpp @@ -213,8 +213,13 @@ TRI_idx_iid_t IndexFactory::validateSlice(arangodb::velocypack::Slice info, if (iid == 0 && !isClusterConstructor) { // Restore is not allowed to generate an id - TRI_ASSERT(generateKey); - iid = arangodb::Index::generateId(); + VPackSlice type = info.get("type"); + // dont generate ids for indexes of type "primary" + // id 0 is expected for primary indexes + if (!type.isString() || !type.isEqualString("primary")) { + TRI_ASSERT(generateKey); + iid = arangodb::Index::generateId(); + } } return iid;