diff --git a/apps/bulldozer-js/src/databases/piledriver/data-structures/augmented-tree-map.ts b/apps/bulldozer-js/src/databases/piledriver/data-structures/augmented-tree-map.ts index ddaef6fd2..d51ee23b1 100644 --- a/apps/bulldozer-js/src/databases/piledriver/data-structures/augmented-tree-map.ts +++ b/apps/bulldozer-js/src/databases/piledriver/data-structures/augmented-tree-map.ts @@ -637,8 +637,12 @@ export class AugmentedTreeMultiMap= 1 ? node.entryAugmentations?.[i] : undefined) - ?? await this.options.extractAugmentation(await this.loadValue(node.entries[i][1]), node.entries[i][0].key, node.entries[i][0].id); + // Trust the cached augmentation only for versioned nodes, and check `!== undefined` (not + // `??`) so a legitimately-cached `null` augmentation is still a hit rather than re-extracted. + const cachedEntryAug = (node.version ?? 0) >= 1 ? node.entryAugmentations?.[i] : undefined; + const entryAug = cachedEntryAug !== undefined + ? cachedEntryAug + : await this.options.extractAugmentation(await this.loadValue(node.entries[i][1]), node.entries[i][0].key, node.entries[i][0].id); result = await this.merge(result, entryAug); } }