diff --git a/src/backend/src/om/IdentifierUtil.js b/src/backend/src/om/IdentifierUtil.js index fcecbce6c..58b8e05d1 100644 --- a/src/backend/src/om/IdentifierUtil.js +++ b/src/backend/src/om/IdentifierUtil.js @@ -26,7 +26,7 @@ class IdentifierUtil extends AdvancedBase { new WeakConstructorFeature(), ] - async detect_identifier (object) { + async detect_identifier (object, allow_mutation = false) { const redundant_identifiers = this.om.redundant_identifiers ?? []; let match_found = null; @@ -60,9 +60,9 @@ class IdentifierUtil extends AdvancedBase { await object.get(key) : object[key], })); if ( object instanceof Entity ) { - await object.del(key); + if ( allow_mutation ) await object.del(key); } else { - delete object[key]; + if ( allow_mutation ) delete object[key]; } } let predicate = new And({ children: key_eqs }); diff --git a/src/backend/src/services/EntityStoreService.js b/src/backend/src/services/EntityStoreService.js index 334d09ca8..2bae2f92b 100644 --- a/src/backend/src/services/EntityStoreService.js +++ b/src/backend/src/services/EntityStoreService.js @@ -194,7 +194,7 @@ class EntityStoreService extends BaseService { om: this.om, }); - const predicate = await idu.detect_identifier(id ?? {}); + const predicate = await idu.detect_identifier(id ?? {}, true); if ( predicate ) { const maybe_entity = await this.select({ predicate, limit: 1 }); if ( maybe_entity.length ) {