diff --git a/.changeset/chilled-queens-wonder.md b/.changeset/chilled-queens-wonder.md new file mode 100644 index 0000000000..a10212792d --- /dev/null +++ b/.changeset/chilled-queens-wonder.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Ensure that entity cache state is only written to the database when actually changed diff --git a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts index ab1e0b96c9..e89d53f79f 100644 --- a/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts +++ b/plugins/catalog-backend/src/processing/DefaultCatalogProcessingEngine.ts @@ -150,7 +150,10 @@ export class DefaultCatalogProcessingEngine implements CatalogProcessingEngine { track.markProcessorsCompleted(result); if (result.ok) { - if (stableStringify(state) !== stableStringify(result.state)) { + const { ttl: _, ...stateWithoutTtl } = state ?? {}; + if ( + stableStringify(stateWithoutTtl) !== stableStringify(result.state) + ) { await this.processingDatabase.transaction(async tx => { await this.processingDatabase.updateEntityCache(tx, { id,