Skip to content

Commit 669798b

Browse files
committed
fix(model): avoid unhandled error if createIndex() throws a sync error
1 parent f8489e3 commit 669798b

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

lib/model.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1653,7 +1653,24 @@ function _ensureIndexes(model, options, callback) {
16531653
}
16541654
}
16551655

1656-
model.collection.createIndex(indexFields, indexOptions).then(
1656+
// Just in case `createIndex()` throws a sync error
1657+
let promise = null;
1658+
try {
1659+
promise = model.collection.createIndex(indexFields, indexOptions);
1660+
} catch (err) {
1661+
if (!indexError) {
1662+
indexError = err;
1663+
}
1664+
if (!model.$caught) {
1665+
model.emit('error', err);
1666+
}
1667+
1668+
indexSingleDone(err, indexFields, indexOptions);
1669+
create();
1670+
return;
1671+
}
1672+
1673+
promise.then(
16571674
name => {
16581675
indexSingleDone(null, indexFields, indexOptions, name);
16591676
create();

0 commit comments

Comments
 (0)