diff --git a/.changeset/great-points-design.md b/.changeset/great-points-design.md new file mode 100644 index 0000000000..cdc24c8f81 --- /dev/null +++ b/.changeset/great-points-design.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-insights-backend': patch +--- + +log errors on tech insights fact retriever diff --git a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts index 11fd0d29b8..17eeab2a61 100644 --- a/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts +++ b/plugins/tech-insights-backend/src/service/fact/FactRetrieverEngine.ts @@ -16,6 +16,7 @@ import { FactRetriever, FactRetrieverContext, + TechInsightFact, TechInsightsStore, } from '@backstage/plugin-tech-insights-node'; import { FactRetrieverRegistry } from './FactRetrieverRegistry'; @@ -108,15 +109,24 @@ export class FactRetrieverEngine { this.logger.info( `Retrieving facts for fact retriever ${factRetriever.id}`, ); - const facts = await factRetriever.handler({ - ...this.factRetrieverContext, - entityFilter: factRetriever.entityFilter, - }); - if (this.logger.isDebugEnabled()) { - this.logger.debug( - `Retrieved ${facts.length} facts for fact retriever ${ - factRetriever.id - } in ${duration(startTimestamp)}`, + + let facts: TechInsightFact[] = []; + try { + facts = await factRetriever.handler({ + ...this.factRetrieverContext, + entityFilter: factRetriever.entityFilter, + }); + if (this.logger.isDebugEnabled()) { + this.logger.debug( + `Retrieved ${facts.length} facts for fact retriever ${ + factRetriever.id + } in ${duration(startTimestamp)}`, + ); + } + } catch (e) { + this.logger.error( + `Failed to retrieve facts for retriever ${factRetriever.id}`, + e, ); }