From 0e983bd2c3db0a64b857afd269be16bfe251b931 Mon Sep 17 00:00:00 2001 From: Josh Mock Date: Wed, 7 Jun 2023 15:19:00 -0500 Subject: [PATCH] [Backport 8.8] fix: keep track of indexSlice explicitly in bulk helper response handling loop (#1759) (#1903) Co-authored-by: Karl Riis --- src/helpers.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/helpers.ts b/src/helpers.ts index 9cba4db8f..9c5c822bf 100644 --- a/src/helpers.ts +++ b/src/helpers.ts @@ -823,13 +823,13 @@ export default class Helpers { } const retry = [] const { items } = result + let indexSlice = 0 for (let i = 0, len = items.length; i < len; i++) { const action = items[i] const operation = Object.keys(action)[0] // @ts-expect-error const responseItem = action[operation as keyof T.BulkResponseItemContainer] assert(responseItem !== undefined, 'The responseItem is undefined, please file a bug report') - const indexSlice = operation !== 'delete' ? i * 2 : i if (responseItem.status >= 400) { // 429 is the only staus code where we might want to retry @@ -857,6 +857,7 @@ export default class Helpers { } else { stats.successful += 1 } + operation === 'delete' ? indexSlice += 1 : indexSlice += 2 } callback(null, retry) })