TypeError Return value of TYPO3\CMS\Form\Hooks\DataStructureIdentifierHook::getLanguageService() must be an instance of TYPO3\CMS\Core\Localization\LanguageService, null returned in /var/www/site-uol11/htdocs/typo3/sysext/form/Classes/Hooks/DataStructureIdentifierHook.php line 403 * @return LanguageService */ protected function getLanguageService(): LanguageService { return $GLOBALS['LANG']; } } at TYPO3\CMS\Form\Hooks\DataStructureIdentifierHook->getLanguageService() in /var/www/site-uol11/htdocs/typo3/sysext/form/Classes/Hooks/DataStructureIdentifierHook.php line 54 const L10N_PREFIX = 'LLL:EXT:form/Resources/Private/Language/Database.xlf:'; public function __construct() { $this->getLanguageService()->includeLLFile('EXT:form/Resources/Private/Language/Database.xlf'); } /** * The data structure depends on a current form selection (persistenceIdentifier) at TYPO3\CMS\Form\Hooks\DataStructureIdentifierHook->__construct() in /var/www/site-uol11/htdocs/typo3/sysext/core/Classes/Utility/GeneralUtility.php line 3220 return self::$container->get($className); } // Create new instance and call constructor with parameters $instance = new $finalClassName(...$constructorArguments); // Register new singleton instance, but only if it is not a known PSR-11 container service if ($instance instanceof SingletonInterface && !(self::$container !== null && self::$container->has($className))) { self::$singletonInstances[$finalClassName] = $instance; } at TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance() in /var/www/site-uol11/htdocs/typo3/sysext/core/Classes/Configuration/FlexForm/FlexFormTools.php line 138 if (!empty($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][self::class]['flexParsing']) && is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][self::class]['flexParsing'])) { $hookClasses = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][self::class]['flexParsing']; foreach ($hookClasses as $hookClass) { $hookInstance = GeneralUtility::makeInstance($hookClass); if (method_exists($hookClass, 'getDataStructureIdentifierPreProcess')) { $dataStructureIdentifier = $hookInstance->getDataStructureIdentifierPreProcess( $fieldTca, $tableName, at TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools->getDataStructureIdentifier() in /var/www/site-uol11/htdocs/typo3/sysext/core/Classes/Configuration/FlexForm/FlexFormTools.php line 785 // ok in certain scenarios, for instance on new record rows. Those are ok to "eat" here // and substitute with a dummy DS. $dataStructureArray = ['sheets' => ['sDEF' => []]]; try { $dataStructureIdentifier = $this->getDataStructureIdentifier($GLOBALS['TCA'][$table]['columns'][$field], $table, $field, $row); $dataStructureArray = $this->parseDataStructureByIdentifier($dataStructureIdentifier); } catch (InvalidParentRowException|InvalidParentRowLoopException|InvalidParentRowRootException|InvalidPointerFieldValueException|InvalidIdentifierException $e) { } at TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools->traverseFlexFormXMLData() in /var/www/site-uol11/htdocs/typo3/sysext/core/Classes/Configuration/FlexForm/FlexFormTools.php line 913 $this->cleanFlexFormXML = []; // Create and call iterator object: $flexObj = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools::class); $flexObj->reNumberIndexesOfSectionData = true; $flexObj->traverseFlexFormXMLData($table, $field, $row, $this, 'cleanFlexFormXML_callBackFunction'); return $this->flexArray2Xml($this->cleanFlexFormXML, true); } /** at TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools->cleanFlexFormXML() in /var/www/site-uol11/htdocs/typo3conf/ext/studipol/Classes/Upgrade/FlexFormPersonOptimizationV3UpgradeWizard.php line 150 * explicitly want to clean up the FlexForm */ // cleanup FlexForm $xml = $this->flexformTools->cleanFlexFormXML('tt_content', 'pi_flexform', $row); $xmlArray = $this->flexformTools->cleanFlexFormXML; // result has a different format !!! // $xmlArray = $this->flexformService->convertFlexFormContentToArray($row['pi_flexform']); at Uniol\Studipol\Upgrade\FlexFormPersonOptimizationV3UpgradeWizard->executeUpdate() in /var/www/site-uol11/htdocs/typo3/sysext/install/Classes/Service/UpgradeWizardsService.php line 400 $performResult = true; } } else { // confirmation yes or non-confirmable $performResult = $updateObject->executeUpdate();