Bug #102105
closedUndefined array key "reverseProxyIP"
0%
Description
This error is being thrown around by the ExtensionManagementUtility::loadBaseTca() function in the loadBaseTca() method of the \TYPO3\CMS\Core\Core\Bootstrap.
Problem
Array values are being checked improperly.
Some package TCA files being required in the \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::buildBaseTcaFromSingleFiles()
method loops (for both TCA and override TCA) are causing this issue. These TCA files contain keys and even variables whose values are being harvested from non-existent globals
multi-dimensional keys.
Example 1:vendor/typo3/cms-core/Configuration/TCA/pages.php
contains this line ['label'=>$GLOBALS['TYPO3_CONF_VARS']['FE']['hidePagesIfNotTranslatedByDefault'] ? 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.l18n_cfg.I.2a' : 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.l18n_cfg.I.2'],
If 'hidePagesIfNotTranslatedByDefault
' is not defined, the error is thrown.
Example 2:vendor/typo3/cms-core/Classes/Resource/Driver/DriverRegistry.php
contains this line in its constructor$driverConfigurations=$GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['registeredDrivers'];
which also throws the error if 'registeredDrivers
' is undefined.
- Predicate optional settings such as the ones mentioned above. In example 1, such as using
isset()
isset($GLOBALS['TYPO3_CONF_VARS']['FE']['hidePagesIfNotTranslatedByDefault']) ? ...
and in example 2,$driverConfigurations=$GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['registeredDrivers'] ?? [];
would be good enough to prevent the error. - Use a the try block in the include closures of the \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::buildBaseTcaFromSingleFiles() method and log or throw out the proper message, such as
"undefined array key 'fal'"
as it should be with example 2 above in order to know the real problem.
Updated by Torben Hansen about 1 year ago
- Status changed from New to Needs Feedback
I could not reproduce the described problem on current main.
Both reverseProxyIP
and registeredDrivers
are part of the TYPO3 default configuration array (see https://github.com/TYPO3/typo3/blob/main/typo3/sysext/core/Configuration/DefaultConfiguration.php) and should always be present, since they are required for TYPO3 to work properly. The default configuration is loaded before TCA is processed and merged with system/additional configuration.
A possible reason for the described error may be, that some extension or system configuration does remove (unset) those array keys, which actually will result in Undefined array key
warning.
Adding fallbacks as suggested will most likely resolve the Undefined array key
warning, but result in a non-functional TYPO3 installation in affected areas. As an example, if $driverConfigurations=$GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['registeredDrivers'] ?? []
is added as suggested, then you have no FAL driver at all, which will result in the follow-up exception Desired storage "Local" is not in the list of available storages.
, since TYPO3 then does not have the expected default FAL driver.
I suggest that you check, if some extension or local setting does unset the required default values somewhere. If you did not find anything which unsets the default array keys in your TYPO3 setup, please provide more information on how to reproduce the problem.
Updated by Riccardo De Contardi 10 months ago
- Status changed from Needs Feedback to Closed
No feedback within 90 days > I close this issue.
If you think that this is the wrong decision or experience the issue again, please reopen it or open a new issue with a reference to this one.
Thank you.