diff --git a/.changeset/reject-failed-index-tasks.md b/.changeset/reject-failed-index-tasks.md new file mode 100644 index 0000000000..3c669ce545 --- /dev/null +++ b/.changeset/reject-failed-index-tasks.md @@ -0,0 +1,5 @@ +--- +'@backstage/search-backend-node': patch +--- + +propagate indexing errors so they don't appear successful to the task scheduler diff --git a/plugins/search-backend-node/src/IndexBuilder.ts b/plugins/search-backend-node/src/IndexBuilder.ts index 235bac905a..2131c6937d 100644 --- a/plugins/search-backend-node/src/IndexBuilder.ts +++ b/plugins/search-backend-node/src/IndexBuilder.ts @@ -128,7 +128,7 @@ export class IndexBuilder { const indexer = await this.searchEngine.getIndexer(type); // Compose collator/decorators/indexer into a pipeline - return new Promise(done => { + return new Promise((resolve, reject) => { pipeline( [collator, ...decorators, indexer], (error: NodeJS.ErrnoException | null) => { @@ -136,12 +136,12 @@ export class IndexBuilder { this.logger.error( `Collating documents for ${type} failed: ${error}`, ); + reject(error); } else { + // Signal index pipeline completion! this.logger.info(`Collating documents for ${type} succeeded`); + resolve(); } - - // Signal index pipeline completion! - done(); }, ); });