Problem/Motivation
After manual update from 10.3.9 to 10.4.1 /admin/modules
reports an error. Update module is apparently inaccessible.
PHP 8.2.11
10.5.22-MariaDB-cll-lve-log
Steps to reproduce
1. Put 10.3.9 Site into maintenance mode.
2. Manually overwrite existing core files by unzipping D10-4-1 package (core, vendor, root php files) in root folder.
3. Run update.php (Update successful, no errors reported)
4. Clear caches
5. Run cron
6. Status page reports unable to check for updates.
7. /admin/modules
shows white screen unexpected error
8. dblog reports
Symfony\Component\Routing\Exception\RouteNotFoundException: Route "update.module_install" does not exist. in Drupal\Core\Routing\RouteProvider->getRouteByName() (line 211 of /home/USERNAME/public_html/core/lib/Drupal/Core/Routing/RouteProvider.php)
8. Backtrace from dblog
#0 /home/USERNAME/public_html/core/lib/Drupal/Core/Menu/LocalActionDefault.php(87): Drupal\Core\Routing\RouteProvider->getRouteByName()
#1 /home/USERNAME/public_html/core/lib/Drupal/Core/Menu/LocalActionManager.php(192): Drupal\Core\Menu\LocalActionDefault->getRouteParameters()
#2 /home/USERNAME/public_html/core/lib/Drupal/Core/Menu/Plugin/Block/LocalActionsBlock.php(81): Drupal\Core\Menu\LocalActionManager->getActionsForRoute()
#3 /home/USERNAME/public_html/core/modules/block/src/BlockViewBuilder.php(171): Drupal\Core\Menu\Plugin\Block\LocalActionsBlock->build()
#4 [internal function]: Drupal\block\BlockViewBuilder::preRender()
#5 /home/USERNAME/public_html/core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php(113): call_user_func_array()
#6 /home/USERNAME/public_html/core/lib/Drupal/Core/Render/Renderer.php(870): Drupal\Core\Render\Renderer->doTrustedCallback()
#7 /home/USERNAME/public_html/core/lib/Drupal/Core/Render/Renderer.php(432): Drupal\Core\Render\Renderer->doCallback()
#8 /home/USERNAME/public_html/core/lib/Drupal/Core/Render/Renderer.php(504): Drupal\Core\Render\Renderer->doRender()
#9 /home/USERNAME/public_html/core/lib/Drupal/Core/Render/Renderer.php(248): Drupal\Core\Render\Renderer->doRender()
#10 /home/USERNAME/public_html/core/lib/Drupal/Core/Template/TwigExtension.php(484): Drupal\Core\Render\Renderer->render()
#11 /home/USERNAME/public_html/sites/default/files/php/twig/677f3b2905e33_page.html.twig_HevebSSWvj_YMkP6bzItlmV5T/C4HR6KJGBX2ZQrQLIInJDwsmOUejLXYcJs65rn7DzSs.php(90): Drupal\Core\Template\TwigExtension->escapeFilter()
#12 /home/USERNAME/public_html/vendor/twig/twig/src/Template.php(387): __TwigTemplate_81b0ab569c712ea391a234acaf65b4d3->doDisplay()
#13 /home/USERNAME/public_html/vendor/twig/twig/src/Template.php(343): Twig\Template->yield()
#14 /home/USERNAME/public_html/vendor/twig/twig/src/Template.php(358): Twig\Template->display()
#15 /home/USERNAME/public_html/vendor/twig/twig/src/TemplateWrapper.php(35): Twig\Template->render()
#16 /home/USERNAME/public_html/core/themes/engines/twig/twig.engine(33): Twig\TemplateWrapper->render()
#17 /home/USERNAME/public_html/core/lib/Drupal/Core/Theme/ThemeManager.php(348): twig_render_template()
#18 /home/USERNAME/public_html/core/lib/Drupal/Core/Render/Renderer.php(491): Drupal\Core\Theme\ThemeManager->render()
#19 /home/USERNAME/public_html/core/lib/Drupal/Core/Render/Renderer.php(248): Drupal\Core\Render\Renderer->doRender()
#20 /home/USERNAME/public_html/core/lib/Drupal/Core/Template/TwigExtension.php(484): Drupal\Core\Render\Renderer->render()
#21 /home/USERNAME/public_html/sites/default/files/php/twig/677f3b2905e33_html.html.twig_ktLjio73ltilyWZlwSFGF2Yj1/T2oyOEYiwSqcrXxuQs1NTO8C8-to_gVsEQqf4lQL0xk.php(91): Drupal\Core\Template\TwigExtension->escapeFilter()
#22 /home/USERNAME/public_html/vendor/twig/twig/src/Template.php(387): __TwigTemplate_f8be08f2b9f4a03655e5da5ae9683746->doDisplay()
#23 /home/USERNAME/public_html/vendor/twig/twig/src/Template.php(343): Twig\Template->yield()
#24 /home/USERNAME/public_html/vendor/twig/twig/src/Template.php(358): Twig\Template->display()
#25 /home/USERNAME/public_html/vendor/twig/twig/src/TemplateWrapper.php(35): Twig\Template->render()
#26 /home/USERNAME/public_html/core/themes/engines/twig/twig.engine(33): Twig\TemplateWrapper->render()
#27 /home/USERNAME/public_html/core/lib/Drupal/Core/Theme/ThemeManager.php(348): twig_render_template()
#28 /home/USERNAME/public_html/core/lib/Drupal/Core/Render/Renderer.php(491): Drupal\Core\Theme\ThemeManager->render()
#29 /home/USERNAME/public_html/core/lib/Drupal/Core/Render/Renderer.php(248): Drupal\Core\Render\Renderer->doRender()
#30 /home/USERNAME/public_html/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(158): Drupal\Core\Render\Renderer->render()
#31 /home/USERNAME/public_html/core/lib/Drupal/Core/Render/Renderer.php(638): Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}()
#32 /home/USERNAME/public_html/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(153): Drupal\Core\Render\Renderer->executeInRenderContext()
#33 /home/USERNAME/public_html/core/lib/Drupal/Core/EventSubscriber/MainContentViewSubscriber.php(90): Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse()
#34 [internal function]: Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray()
#35 /home/USERNAME/public_html/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php(111): call_user_func()
#36 /home/USERNAME/public_html/vendor/symfony/http-kernel/HttpKernel.php(186): Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch()
#37 /home/USERNAME/public_html/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw()
#38 /home/USERNAME/public_html/core/lib/Drupal/Core/StackMiddleware/Session.php(53): Symfony\Component\HttpKernel\HttpKernel->handle()
#39 /home/USERNAME/public_html/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle()
#40 /home/USERNAME/public_html/core/lib/Drupal/Core/StackMiddleware/ContentLength.php(28): Drupal\Core\StackMiddleware\KernelPreHandle->handle()
#41 /home/USERNAME/public_html/core/modules/page_cache/src/StackMiddleware/PageCache.php(116): Drupal\Core\StackMiddleware\ContentLength->handle()
#42 /home/USERNAME/public_html/core/modules/page_cache/src/StackMiddleware/PageCache.php(90): Drupal\page_cache\StackMiddleware\PageCache->pass()
#43 /home/USERNAME/public_html/core/modules/ban/src/BanMiddleware.php(50): Drupal\page_cache\StackMiddleware\PageCache->handle()
#44 /home/USERNAME/public_html/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\ban\BanMiddleware->handle()
#45 /home/USERNAME/public_html/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle()
#46 /home/USERNAME/public_html/core/lib/Drupal/Core/StackMiddleware/AjaxPageState.php(36): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle()
#47 /home/USERNAME/public_html/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\AjaxPageState->handle()
#48 /home/USERNAME/public_html/core/lib/Drupal/Core/DrupalKernel.php(741): Drupal\Core\StackMiddleware\StackedHttpKernel->handle()
#49 /home/USERNAME/public_html/index.php(19): Drupal\Core\DrupalKernel->handle()
#50 {main}
NOTE: Prior to core update, I have tried disabling the Update Module at /admin/modules
first. It was possible to re-enable it after core update to 10.4.1, but this only solved the problem for while. The whitescreen returned after a day and a couple of cache flushes.
Proposed resolution
Please no lectures about mandating the use of Composer. If the Drupal community is unwilling to provide dumbed down comprehensive instructions on installing and using it on a remote host, with lists of useful commands, then accept that manual updates will continue, especially if robots.txt and htaccess files must be protected. The workaround for protecting files requires a high level of expertise, certainly above my head.