diff --git a/packages/twenty-server/src/engine/metadata-modules/role/services/workspace-roles-permissions-cache.service.ts b/packages/twenty-server/src/engine/metadata-modules/role/services/workspace-roles-permissions-cache.service.ts index 08b9c94457f..f190be941cf 100644 --- a/packages/twenty-server/src/engine/metadata-modules/role/services/workspace-roles-permissions-cache.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/role/services/workspace-roles-permissions-cache.service.ts @@ -283,11 +283,22 @@ export class WorkspaceRolesPermissionsCacheService extends WorkspaceCacheProvide const hasPermissionFromSettingPermissions = isDefined( rolePermissionFlags.find( (rolePermissionFlag) => - rolePermissionFlag.permissionFlag.universalIdentifier === + this.getRolePermissionFlagUniversalIdentifier(rolePermissionFlag) === permissionFlagUniversalIdentifier, ), ); return hasPermissionFromRole || hasPermissionFromSettingPermissions; } + + private getRolePermissionFlagUniversalIdentifier( + rolePermissionFlag: RolePermissionFlagEntity, + ): string { + // The `permissionFlag` relation is stripped during upgrades until the 2.6.0 + // cursor (@WasIntroducedInUpgrade), so fall back to the legacy `flag` column. + return ( + rolePermissionFlag.permissionFlag?.universalIdentifier ?? + SystemPermissionFlag[rolePermissionFlag.flag] + ); + } }