Problem/Motivation
After manual update from 10.3.9 to 10.4.1 /admin/modules
reports an error. Update module is apparently inaccessible. Maybe not be relevant, but note that the site is not using https.
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: On a separate https site, prior to core update the Update Module was first disabled at /admin/modules
and it was possible to re-enable it after core update to 10.4.1. This solved the problem, but did not work on a separate http site.
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.
Remaining tasks
User interface changes
Introduced terminology
API changes
Data model changes
Release notes snippet