diff --git a/projects/common/services/sanitization.service.spec.ts b/projects/common/services/sanitization.service.spec.ts
index 168e2969ce7feb47eeec8bcb3078a45f2a282deb..913a18f2e54efd4c15496029554bfa7580578d36 100644
--- a/projects/common/services/sanitization.service.spec.ts
+++ b/projects/common/services/sanitization.service.spec.ts
@@ -25,7 +25,7 @@ describe('SanitizationService', () => {
   });
 
   it('isUnitDefinitionOutdated should return false on current version', () => {
-    const basicUnitDefinition: Unit = {
+    const basicUnitDefinition: Partial<Unit> = {
       'type': 'aspect-unit-definition',
       'version': packageJSON.config.unit_definition_version,
       'pages': []
@@ -34,7 +34,7 @@ describe('SanitizationService', () => {
   });
 
   it('isUnitDefinitionOutdated should return true on older version', () => {
-    const unitDefinition: Unit = {
+    const unitDefinition: Partial<Unit> = {
       'type': 'aspect-unit-definition',
       'version': '3.3.0',
       'pages': []
@@ -43,7 +43,7 @@ describe('SanitizationService', () => {
   });
 
   it('sanitizeUnitDefinition should return basic unit definition', () => {
-    const basicUnitDefinition: Unit = {
+    const basicUnitDefinition: Partial<Unit> = {
       'type': 'aspect-unit-definition',
       'version': packageJSON.config.unit_definition_version,
       'pages': []
@@ -71,7 +71,7 @@ describe('SanitizationService', () => {
         'zIndex': 0
       }
     };
-    expect(service.sanitizeUnitDefinition(testData130).pages[0].sections[0].elements[0])
+    expect(service.sanitizeUnitDefinition(testData130).pages![0].sections[0].elements[0])
       .toEqual(jasmine.objectContaining(expectedPositionProps));
   });
 
@@ -85,9 +85,9 @@ describe('SanitizationService', () => {
       'gridRowRange': 1
     };
     const sanitizedUnit126 = service.sanitizeUnitDefinition(JSON.parse(JSON.stringify(sampleUnit126)));
-    expect(Object.keys(sanitizedUnit126.pages[0].sections[0].elements[0]))
+    expect(Object.keys(sanitizedUnit126.pages![0].sections[0].elements[0]))
       .toContain('position');
-    expect(sanitizedUnit126.pages[0].sections[0].elements[0].position)
+    expect(sanitizedUnit126.pages![0].sections[0].elements[0].position)
       .toEqual(jasmine.objectContaining(expectedPositionProps));
   });
 
@@ -102,9 +102,9 @@ describe('SanitizationService', () => {
       'gridRowRange': 1
     };
     const sanitizedUnit100 = service.sanitizeUnitDefinition(JSON.parse(JSON.stringify(sampleUnit100)));
-    expect(Object.keys(sanitizedUnit100.pages[0].sections[0].elements[0]))
+    expect(Object.keys(sanitizedUnit100.pages![0].sections[0].elements[0]))
       .toContain('position');
-    expect(sanitizedUnit100.pages[0].sections[0].elements[0].position)
+    expect(sanitizedUnit100.pages![0].sections[0].elements[0].position)
       .toEqual(jasmine.objectContaining(expectedPositionProps));
   });
 
@@ -113,14 +113,14 @@ describe('SanitizationService', () => {
     const unit = sampleUnit126;
     unit.pages[0].sections[0].dynamicPositioning = true;
     const sanitizedUnit = service.sanitizeUnitDefinition(JSON.parse(JSON.stringify(unit)));
-    expect(sanitizedUnit.pages[0].sections[0].elements[0].position)
+    expect(sanitizedUnit.pages![0].sections[0].elements[0].position)
       .toEqual(jasmine.objectContaining({
         'dynamicPositioning': true
       }));
 
     // no change necessary
     const sanitizedUnit129 = service.sanitizeUnitDefinition(JSON.parse(JSON.stringify(sampleUnit129)));
-    expect(sanitizedUnit129.pages[0].sections[0].elements[0].position)
+    expect(sanitizedUnit129.pages![0].sections[0].elements[0].position)
       .toEqual(jasmine.objectContaining({
         'dynamicPositioning': false
       }));
@@ -138,9 +138,9 @@ describe('SanitizationService', () => {
       'lineHeight': 135
     };
     const sanitizedUnit130 = service.sanitizeUnitDefinition(JSON.parse(JSON.stringify(sampleUnit130)));
-    expect(Object.keys(sanitizedUnit130.pages[0].sections[0].elements[0]))
+    expect(Object.keys(sanitizedUnit130.pages![0].sections[0].elements[0]))
       .toContain('styling');
-    expect(sanitizedUnit130.pages[0].sections[0].elements[0].styling)
+    expect(sanitizedUnit130.pages![0].sections[0].elements[0].styling)
       .toEqual(jasmine.objectContaining(expectedStylingProps));
   });
 
@@ -156,9 +156,9 @@ describe('SanitizationService', () => {
       'backgroundColor': 'red'
     };
     const sanitizedUnit126 = service.sanitizeUnitDefinition(JSON.parse(JSON.stringify(sampleUnit126)));
-    expect(Object.keys(sanitizedUnit126.pages[0].sections[0].elements[0]))
+    expect(Object.keys(sanitizedUnit126.pages![0].sections[0].elements[0]))
       .toContain('styling');
-    expect(sanitizedUnit126.pages[0].sections[0].elements[0].styling)
+    expect(sanitizedUnit126.pages![0].sections[0].elements[0].styling)
       .toEqual(jasmine.objectContaining(expectedStylingProps));
   });
 
@@ -175,9 +175,9 @@ describe('SanitizationService', () => {
       'interactiveProgressbar': false,
       'volumeControl': true
     };
-    expect(Object.keys(sanitizedUnit130Audio.pages[0].sections[0].elements[0]))
+    expect(Object.keys(sanitizedUnit130Audio.pages![0].sections[0].elements[0]))
       .toContain('player');
-    expect(sanitizedUnit130Audio.pages[0].sections[0].elements[0].player)
+    expect(sanitizedUnit130Audio.pages![0].sections[0].elements[0].player)
       .toEqual(jasmine.objectContaining(expectedPlayerProps));
   });
 
@@ -197,9 +197,9 @@ describe('SanitizationService', () => {
       'minVolume': 0,
       'muteControl': true
     };
-    expect(Object.keys(sanitizedUnit126Audio.pages[0].sections[0].elements[0]))
+    expect(Object.keys(sanitizedUnit126Audio.pages![0].sections[0].elements[0]))
       .toContain('player');
-    expect(sanitizedUnit126Audio.pages[0].sections[0].elements[0].player)
+    expect(sanitizedUnit126Audio.pages![0].sections[0].elements[0].player)
       .toEqual(jasmine.objectContaining(expectedPlayerProps));
   });
 
@@ -211,7 +211,7 @@ describe('SanitizationService', () => {
       highlightableTurquoise: false,
       highlightableOrange: false
     };
-    expect(sanitizedUnit112Texts.pages[0].sections[0].elements[1])
+    expect(sanitizedUnit112Texts.pages![0].sections[0].elements[1])
       .not.toEqual(jasmine.objectContaining(expectedTextProps));
   });
 
@@ -223,7 +223,7 @@ describe('SanitizationService', () => {
       highlightableTurquoise: true,
       highlightableOrange: true
     };
-    expect(sanitizedUnit112Texts.pages[0].sections[0].elements[0])
+    expect(sanitizedUnit112Texts.pages![0].sections[0].elements[0])
       .toEqual(jasmine.objectContaining(expectedTextProps));
   });
 
@@ -235,26 +235,26 @@ describe('SanitizationService', () => {
       highlightableTurquoise: false,
       highlightableOrange: false
     };
-    expect(sanitizedUnit112Texts.pages[0].sections[0].elements[2])
+    expect(sanitizedUnit112Texts.pages![0].sections[0].elements[2])
       .not.toEqual(jasmine.objectContaining(expectedTextProps));
   });
 
   it('sanitizeUnitDefinition should return text field element', () => {
     const sanitizedUnit130TextFields =
       service.sanitizeUnitDefinition(JSON.parse(JSON.stringify(sampleUnit130TextFields)));
-    expect(sanitizedUnit130TextFields.pages[0].sections[0].elements[0])
+    expect(sanitizedUnit130TextFields.pages![0].sections[0].elements[0])
       .toEqual(jasmine.objectContaining({
         'inputAssistancePreset': null,
         'inputAssistancePosition': 'floating',
         'restrictedToInputAssistanceChars': false
       }));
-    expect(sanitizedUnit130TextFields.pages[0].sections[0].elements[1])
+    expect(sanitizedUnit130TextFields.pages![0].sections[0].elements[1])
       .toEqual(jasmine.objectContaining({
         'inputAssistancePreset': 'french',
         'inputAssistancePosition': 'floating',
         'restrictedToInputAssistanceChars': true
       }));
-    expect(sanitizedUnit130TextFields.pages[0].sections[0].elements[2])
+    expect(sanitizedUnit130TextFields.pages![0].sections[0].elements[2])
       .toEqual(jasmine.objectContaining({
         'inputAssistancePreset': 'numbers',
         'inputAssistancePosition': 'floating',
@@ -266,41 +266,41 @@ describe('SanitizationService', () => {
   it('sanitizeUnitDefinition should repair text field and area elements', () => {
     const sanitizedUnit112TextFields =
       service.sanitizeUnitDefinition(JSON.parse(JSON.stringify(sampleUnit112TextFields)));
-    expect(sanitizedUnit112TextFields.pages[0].sections[0].elements[0])
+    expect(sanitizedUnit112TextFields.pages![0].sections[0].elements[0])
       .toEqual(jasmine.objectContaining({
         'inputAssistancePreset': null,
         'inputAssistancePosition': 'floating'
       }));
-    expect(sanitizedUnit112TextFields.pages[0].sections[0].elements[0])
+    expect(sanitizedUnit112TextFields.pages![0].sections[0].elements[0])
       .not.toEqual(jasmine.objectContaining({
         'restrictedToInputAssistanceChars': false
       }));
-    expect(sanitizedUnit112TextFields.pages[0].sections[0].elements[1])
+    expect(sanitizedUnit112TextFields.pages![0].sections[0].elements[1])
       .toEqual(jasmine.objectContaining({
         'inputAssistancePreset': 'french',
         'inputAssistancePosition': 'right',
         'restrictedToInputAssistanceChars': false
       }));
-    expect(sanitizedUnit112TextFields.pages[0].sections[0].elements[2])
+    expect(sanitizedUnit112TextFields.pages![0].sections[0].elements[2])
       .toEqual(jasmine.objectContaining({
         'inputAssistancePreset': 'numbers',
         'inputAssistancePosition': 'floating'
       }));
-    expect(sanitizedUnit112TextFields.pages[0].sections[0].elements[2])
+    expect(sanitizedUnit112TextFields.pages![0].sections[0].elements[2])
       .not.toEqual(jasmine.objectContaining({
         'restrictedToInputAssistanceChars': false
       }));
     // text areas
-    expect(sanitizedUnit112TextFields.pages[0].sections[0].elements[3])
+    expect(sanitizedUnit112TextFields.pages![0].sections[0].elements[3])
       .toEqual(jasmine.objectContaining({
         'inputAssistancePreset': null,
         'inputAssistancePosition': 'floating'
       }));
-    expect(sanitizedUnit112TextFields.pages[0].sections[0].elements[3])
+    expect(sanitizedUnit112TextFields.pages![0].sections[0].elements[3])
       .not.toEqual(jasmine.objectContaining({
         'restrictedToInputAssistanceChars': false
       }));
-    expect(sanitizedUnit112TextFields.pages[0].sections[0].elements[4])
+    expect(sanitizedUnit112TextFields.pages![0].sections[0].elements[4])
       .toEqual(jasmine.objectContaining({
         'inputAssistancePreset': 'french',
         'inputAssistancePosition': 'floating',
@@ -356,13 +356,13 @@ describe('SanitizationService', () => {
     };
     const sanitizedUnitDefinition = service.sanitizeUnitDefinition(unitDef as unknown as Unit);
 
-    expect(sanitizedUnitDefinition.pages[0].sections[0].elements[0])
+    expect(sanitizedUnitDefinition.pages![0].sections[0].elements[0])
       .toEqual(jasmine.objectContaining({
         'id': 'cloze_1',
         'type': 'cloze'
       }));
 
-    const sanatizedClozeChild1 = (sanitizedUnitDefinition.pages[0].sections[0].elements[0] as ClozeElement)
+    const sanatizedClozeChild1 = (sanitizedUnitDefinition.pages![0].sections[0].elements[0] as ClozeElement)
       .document.content[0].content[0]?.attrs?.model;
     expect(sanatizedClozeChild1)
       .toEqual(jasmine.objectContaining({
@@ -370,7 +370,7 @@ describe('SanitizationService', () => {
         'type': 'text-field-simple'
       }));
 
-    const sanatizedClozeChild2 = (sanitizedUnitDefinition.pages[0].sections[0].elements[0] as ClozeElement)
+    const sanatizedClozeChild2 = (sanitizedUnitDefinition.pages![0].sections[0].elements[0] as ClozeElement)
       .document.content[0].content[1]?.attrs?.model;
     expect(sanatizedClozeChild2)
       .toEqual(jasmine.objectContaining({
@@ -378,7 +378,7 @@ describe('SanitizationService', () => {
         'type': 'drop-list-simple'
       }));
 
-    const sanatizedClozeChild3 = (sanitizedUnitDefinition.pages[0].sections[0].elements[0] as ClozeElement)
+    const sanatizedClozeChild3 = (sanitizedUnitDefinition.pages![0].sections[0].elements[0] as ClozeElement)
       .document.content[0].content[2]?.attrs?.model;
     expect(sanatizedClozeChild3)
       .toEqual(jasmine.objectContaining({
diff --git a/projects/common/services/sanitization.service.ts b/projects/common/services/sanitization.service.ts
index fc622e7a82140dcb6ae9ee8785ba287d476dcf5a..32db7840347691e325f920660d66e64c34bdc1bd 100644
--- a/projects/common/services/sanitization.service.ts
+++ b/projects/common/services/sanitization.service.ts
@@ -39,16 +39,16 @@ export class SanitizationService {
   private static unitDefinitionVersion: [number, number, number] | undefined;
 
   // TODO: isUnitDefinitionOutdated must not set the unitDefinitionVersion
-  static isUnitDefinitionOutdated(unitDefinition: Unit): boolean {
+  static isUnitDefinitionOutdated(unitDefinition: Partial<Unit>): boolean {
     SanitizationService.unitDefinitionVersion =
       SanitizationService.readUnitDefinitionVersion(unitDefinition as unknown as Record<string, string>);
     return SanitizationService.isVersionOlderThanCurrent(SanitizationService.unitDefinitionVersion);
   }
 
-  sanitizeUnitDefinition(unitDefinition: Unit): Partial<Unit> {
+  sanitizeUnitDefinition(unitDefinition: Partial<Unit>): Partial<Unit> {
     return {
       ...unitDefinition,
-      pages: unitDefinition.pages.map((page: Page) => this.sanitizePage(page)) as Page[]
+      pages: unitDefinition.pages?.map((page: Page) => this.sanitizePage(page)) as Page[]
     };
   }