diff --git a/web/packages/new/photos/services/ml/worker.ts b/web/packages/new/photos/services/ml/worker.ts index e59e0f8731..fdcb1ac595 100644 --- a/web/packages/new/photos/services/ml/worker.ts +++ b/web/packages/new/photos/services/ml/worker.ts @@ -311,14 +311,17 @@ const indexNextBatch = async ( while (i < items.length) { for (let j = 0; j < tasks.length; j++) { if (i < items.length && !tasks[j]) { - tasks[j] = index(ensure(items[i++]), electron) - .then(() => { - tasks[j] = undefined; - }) - .catch(() => { - allSuccess = false; - tasks[j] = undefined; - }); + // Use an IIFE to capture the value of j at the time of + // invocation. + tasks[j] = ((item: IndexableItem, j: number) => + index(item, electron) + .then(() => { + tasks[j] = undefined; + }) + .catch(() => { + allSuccess = false; + tasks[j] = undefined; + }))(ensure(items[i++]), j); } }