Install tool breaks if it cannot unserialize extension configuration from LocalConfiguration.php
While trying to upgrade an existing installation from 8.7.30 to 9.5.13 with install tool, the process stopped in early state with the missleading message: "Something went wrong. Please use Check for broken extensions to see if a loaded extension breaks this part of the install tool and unload it."
When clicking on "Check for broken extensions" same issue occurs again.
Real error is a TypeError:
Argument 1 passed to TYPO3\CMS\Install\Controller\LayoutController::removeDotsFromArrayKeysRecursive() must be of the type array, boolean given, called in /kunden/412714_70794/rp-hosting/5139014/6139014/typo3cms/typo3_src-9.5.13/typo3/sysext/install/Classes/Controller/LayoutController.php on line 123
After reviewing source code and also adding some debug code I realize this issue is caused by extension settings of very old extensions I do not use anymore for years now. TYPO3 cannot unserialize still stored extension configuration in LocalConfiguration.php.
Please improve robustness in LayoutController.executeSilentLegacyExtConfExtensionConfigurationUpdateAction() and check for return value of unserialize method before passing it to another method. See line 123:
$newExtensionSettings = $this->removeDotsFromArrayKeysRecursive(unserialize($extensionSettings, ['allowed_classes' => false]));
Please provide a hint to the user what to do now.
In order to bypass this issue I had to remove entries for extensions beko_improved_login and tcdirectmail from array [EXT][extConf]in file LocalConfiguration.php. It also is a good time now to remove all remaining entries of extensions used years ago.