diff --git a/typo3/sysext/install/Classes/Controller/UpgradeController.php b/typo3/sysext/install/Classes/Controller/UpgradeController.php
index 60facea7a2b779d06f68acb4352dca9c912ae92c..6236a0457a55d557a2f64507cf7b58f597130488 100644
--- a/typo3/sysext/install/Classes/Controller/UpgradeController.php
+++ b/typo3/sysext/install/Classes/Controller/UpgradeController.php
@@ -789,6 +789,8 @@ class UpgradeController extends AbstractController
         $loadTcaService = GeneralUtility::makeInstance(LoadTcaService::class);
         $loadTcaService->loadExtensionTablesWithoutMigration();
         $baseTca = $GLOBALS['TCA'];
+        $container = $this->lateBootService->getContainer();
+        $backup = $this->lateBootService->makeCurrent($container);
         foreach ($this->packageManager->getActivePackages() as $package) {
             $this->extensionCompatTesterLoadExtLocalconfForExtension($package);
 
@@ -807,6 +809,7 @@ class UpgradeController extends AbstractController
                 $baseTca = $newTca;
             }
         }
+        $this->lateBootService->makeCurrent(null, $backup);
         return new JsonResponse([
             'success' => true,
             'status' => $messageQueue,
diff --git a/typo3/sysext/install/Classes/Service/LateBootService.php b/typo3/sysext/install/Classes/Service/LateBootService.php
index 0a9518b67cf4eacedf8aaa7120501ad5cc3e6fca..b85e860c8e9c6210ea0297203c201acfca73e227 100644
--- a/typo3/sysext/install/Classes/Service/LateBootService.php
+++ b/typo3/sysext/install/Classes/Service/LateBootService.php
@@ -85,15 +85,16 @@ class LateBootService
      * is specified
      *
      * @param ContainerInterface $container
-     * @param array $oldBackup
+     * @param array $backup
      * @return array
      */
-    public function makeCurrent(ContainerInterface $container = null, array $oldBackup = []): array
+    public function makeCurrent(ContainerInterface $container = null, array $backup = []): array
     {
-        $container = $container ?? $this->failsafeContainer;
+        $container = $container ?? $backup['container'] ?? $this->failsafeContainer;
 
-        $backup = [
-            'singletonInstances', GeneralUtility::getSingletonInstances(),
+        $newBackup = [
+            'singletonInstances' => GeneralUtility::getSingletonInstances(),
+            'container' => GeneralUtility::getContainer(),
         ];
 
         GeneralUtility::purgeInstances();
@@ -102,12 +103,12 @@ class LateBootService
         GeneralUtility::setContainer($container);
         ExtensionManagementUtility::setPackageManager($container->get(PackageManager::class));
 
-        $backupSingletonInstances = $oldBackup['singletonInstances'] ?? [];
+        $backupSingletonInstances = $backup['singletonInstances'] ?? [];
         foreach ($backupSingletonInstances as $className => $instance) {
             GeneralUtility::setSingletonInstance($className, $instance);
         }
 
-        return $backup;
+        return $newBackup;
     }
 
     /**