Skip to content

Commit 83ea90f

Browse files
authored
fix: always delete temporary index in replaceAllObjects (#1598)
* fix: always delete temporary index in replaceAllObjects * wait * ignore error * revert * try something else
1 parent 5dd57a1 commit 83ea90f

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

packages/client-search/src/methods/index/replaceAllObjects.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { RequestOptions } from '@algolia/transporter';
55
import {
66
ChunkedBatchResponse,
77
ChunkOptions,
8+
deleteIndex,
89
IndexOperationResponse,
910
ReplaceAllObjectsOptions,
1011
saveObjects,
@@ -100,6 +101,21 @@ export const replaceAllObjects = (base: SearchIndex) => {
100101
objectIDs: saveObjectsResponse.objectIDs,
101102
taskIDs: [copyResponse.taskID, ...saveObjectsResponse.taskIDs, moveResponse.taskID],
102103
};
104+
})
105+
.catch(error => {
106+
// Clean up temporary index if there's an error
107+
// eslint-disable-next-line promise/no-nesting
108+
return deleteIndex({
109+
appId: base.appId,
110+
transporter: base.transporter,
111+
indexName: temporaryIndexName,
112+
})()
113+
.catch(() => {
114+
// Ignore delete errors
115+
})
116+
.then(() => {
117+
throw error;
118+
});
103119
});
104120

105121
return createWaitablePromise(result, (_, waitRequestOptions) => {

0 commit comments

Comments
 (0)