From d9dab75052386ca2f467444965b9dd3e13865364 Mon Sep 17 00:00:00 2001 From: Paul Rastoin <45004772+prastoin@users.noreply.github.com> Date: Wed, 11 Feb 2026 13:33:38 +0100 Subject: [PATCH] Do not throw on corrupted labelFieldMetadataIdentifier (#17859) # Introduction As we don't enforce any FK on object labelIdentifierFieldMetadataId we have some that are either null or pointing to non-existing field metadata resulting in exception thrown at cache computation lvl Commenting the exception throw until we've closed https://github.com/twentyhq/core-team-issues/issues/2172 closes https://github.com/twentyhq/core-team-issues/issues/2221 --- ...ata-entity-to-flat-object-metadata.util.ts | 26 ++++++++++--------- .../object-metadata/object-metadata.entity.ts | 2 +- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-object-metadata-entity-to-flat-object-metadata.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-object-metadata-entity-to-flat-object-metadata.util.ts index da0cefc880..acac212b3e 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-object-metadata-entity-to-flat-object-metadata.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-object-metadata-entity-to-flat-object-metadata.util.ts @@ -43,12 +43,13 @@ export const fromObjectMetadataEntityToFlatObjectMetadata = ({ objectMetadataEntity.labelIdentifierFieldMetadataId, ) ?? null; - if (!isDefined(labelIdentifierFieldMetadataUniversalIdentifier)) { - throw new FlatEntityMapsException( - `Label identifier field metadata with id ${objectMetadataEntity.labelIdentifierFieldMetadataId} not found when building flat object metadata for object ${objectMetadataEntity.id}`, - FlatEntityMapsExceptionCode.ENTITY_NOT_FOUND, - ); - } + // TODO uncomment once https://github.com/twentyhq/core-team-issues/issues/2172 has been resolved + // if (!isDefined(labelIdentifierFieldMetadataUniversalIdentifier)) { + // throw new FlatEntityMapsException( + // `Label identifier field metadata with id ${objectMetadataEntity.labelIdentifierFieldMetadataId} not found when building flat object metadata for object ${objectMetadataEntity.id}`, + // FlatEntityMapsExceptionCode.ENTITY_NOT_FOUND, + // ); + // } } let imageIdentifierFieldMetadataUniversalIdentifier: string | null = null; @@ -59,12 +60,13 @@ export const fromObjectMetadataEntityToFlatObjectMetadata = ({ objectMetadataEntity.imageIdentifierFieldMetadataId, ) ?? null; - if (!isDefined(imageIdentifierFieldMetadataUniversalIdentifier)) { - throw new FlatEntityMapsException( - `Image identifier field metadata with id ${objectMetadataEntity.imageIdentifierFieldMetadataId} not found when building flat object metadata for object ${objectMetadataEntity.id}`, - FlatEntityMapsExceptionCode.ENTITY_NOT_FOUND, - ); - } + // TODO uncomment once https://github.com/twentyhq/core-team-issues/issues/2172 has been resolved + // if (!isDefined(imageIdentifierFieldMetadataUniversalIdentifier)) { + // throw new FlatEntityMapsException( + // `Image identifier field metadata with id ${objectMetadataEntity.imageIdentifierFieldMetadataId} not found when building flat object metadata for object ${objectMetadataEntity.id}`, + // FlatEntityMapsExceptionCode.ENTITY_NOT_FOUND, + // ); + // } } return { diff --git a/packages/twenty-server/src/engine/metadata-modules/object-metadata/object-metadata.entity.ts b/packages/twenty-server/src/engine/metadata-modules/object-metadata/object-metadata.entity.ts index 86a6c41bfd..00a4e3f0db 100644 --- a/packages/twenty-server/src/engine/metadata-modules/object-metadata/object-metadata.entity.ts +++ b/packages/twenty-server/src/engine/metadata-modules/object-metadata/object-metadata.entity.ts @@ -97,7 +97,7 @@ export class ObjectMetadataEntity shortcut: string | null; // TODO: This should not be nullable - legacy field introduced when label identifier was nullable - // TODO: This should be a joinColumn and we should have a FK on this too + // TODO: This should be a joinColumn and we should have a FK on this too https://github.com/twentyhq/core-team-issues/issues/2172 @Column({ nullable: true, type: 'uuid' }) labelIdentifierFieldMetadataId: string | null;