After installing Easy Breadcrumb on our project the Page Manager UI got broken.
When using both contrib modules:
- Easy Breadcrumb 8.x-1.8
- Page Manger 8.x-4.0-beta3
I can not work with Page Manager UI as I'm getting 500 error (The website encountered an unexpected error. Please try again later.) on pages like this: /admin/structure/page_manager/manage/test_page/content
The problem is that the Easy Breadcrumb is trying to get Page Manager's page title, but it somehow provides a context in which Page Manager calls
return $this->t('Edit %label page', ['%label' => $page->label()]);
but the $page
is null.
I'm not sure if it is bug in Easy Breadcrumb or Page Manager not being careful enough and using $page
variable loaded from cached values:
$cached_values = $this->tempstore->get($tempstore_id)->get($machine_name);
/** @var \Drupal\page_manager\PageInterface $page */
$page = $cached_values['page'];
even though it might be null, so I'm mirroring this issue in Easy Bredcrumb issue queue too:
https://www.drupal.org/project/easy_breadcrumb/issues/3052340 β
Reported error:
Error: Call to a member function label() on null in Drupal\page_manager_ui\Controller\PageManagerController->editPageTitle() (line 115 of /app/web/modules/contrib/page_manager/page_manager_ui/src/Controller/PageManagerController.php)
Call stack
- PageManagerController.php:115, Drupal\page_manager_ui\Controller\PageManagerController->editPageTitle()
- TitleResolver.php:58, call_user_func_array:{/app/web/core/lib/Drupal/Core/Controller/TitleResolver.php:58}()
- TitleResolver.php:58, Drupal\Core\Controller\TitleResolver->getTitle()
- EasyBreadcrumbBuilder.php:346, Drupal\easy_breadcrumb\EasyBreadcrumbBuilder->getTitleString()
- EasyBreadcrumbBuilder.php:234, Drupal\easy_breadcrumb\EasyBreadcrumbBuilder->build()
- BreadcrumbManager.php:83, Drupal\Core\Breadcrumb\BreadcrumbManager->build()
- SystemBreadcrumbBlock.php:72, Drupal\system\Plugin\Block\SystemBreadcrumbBlock->build()
- BlockViewBuilder.php:203, Drupal\block\BlockViewBuilder::preRender()
- Renderer.php:378, call_user_func:{/app/web/core/lib/Drupal/Core/Render/Renderer.php:378}()
- Renderer.php:378, Drupal\Core\Render\Renderer->doRender()
- Renderer.php:450, Drupal\Core\Render\Renderer->doRender()
- Renderer.php:195, Drupal\Core\Render\Renderer->render()
- TwigExtension.php:490, Drupal\Core\Template\TwigExtension->escapeFilter()
- 16:71, __TwigTemplate_127c79ddd881ab7b6bf51c9cb210f022fdb02a2a8c8d0c0e159772c2c8082496->doDisplay()
- Template.php:430, __TwigTemplate_127c79ddd881ab7b6bf51c9cb210f022fdb02a2a8c8d0c0e159772c2c8082496->displayWithErrorHandling()
- Template.php:401, __TwigTemplate_127c79ddd881ab7b6bf51c9cb210f022fdb02a2a8c8d0c0e159772c2c8082496->display()
- Template.php:409, __TwigTemplate_127c79ddd881ab7b6bf51c9cb210f022fdb02a2a8c8d0c0e159772c2c8082496->render()
- twig.engine:64, twig_render_template()
- ThemeManager.php:384, Drupal\Core\Theme\ThemeManager->render()
- Renderer.php:437, Drupal\Core\Render\Renderer->doRender()
- Renderer.php:195, Drupal\Core\Render\Renderer->render()
- TwigExtension.php:490, Drupal\Core\Template\TwigExtension->escapeFilter()
- 16:102, __TwigTemplate_f19c0879957c7fb8321dfff4e362d29f4923d893ee6247a1d6d99370c9ca7785->doDisplay()
- Template.php:430, __TwigTemplate_f19c0879957c7fb8321dfff4e362d29f4923d893ee6247a1d6d99370c9ca7785->displayWithErrorHandling()
- Template.php:401, __TwigTemplate_f19c0879957c7fb8321dfff4e362d29f4923d893ee6247a1d6d99370c9ca7785->display()
- Template.php:409, __TwigTemplate_f19c0879957c7fb8321dfff4e362d29f4923d893ee6247a1d6d99370c9ca7785->render()
- twig.engine:64, twig_render_template()
- ThemeManager.php:384, Drupal\Core\Theme\ThemeManager->render()
- Renderer.php:437, Drupal\Core\Render\Renderer->doRender()
- Renderer.php:195, Drupal\Core\Render\Renderer->render()
- HtmlRenderer.php:147, Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}()
- Renderer.php:582, Drupal\Core\Render\Renderer->executeInRenderContext()
- HtmlRenderer.php:148, Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse()
- MainContentViewSubscriber.php:90, Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray()
- ContainerAwareEventDispatcher.php:111, call_user_func:{/app/web/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php:111}()
- ContainerAwareEventDispatcher.php:111, Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch()
- HttpKernel.php:156, Symfony\Component\HttpKernel\HttpKernel->handleRaw()
- HttpKernel.php:68, Symfony\Component\HttpKernel\HttpKernel->handle()
- Session.php:57, Drupal\Core\StackMiddleware\Session->handle()
- KernelPreHandle.php:47, Drupal\Core\StackMiddleware\KernelPreHandle->handle()
- PageCache.php:99, Drupal\page_cache\StackMiddleware\PageCache->pass()
- PageCache.php:78, Drupal\page_cache\StackMiddleware\PageCache->handle()
- ReverseProxyMiddleware.php:47, Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle()
- NegotiationMiddleware.php:52, Drupal\Core\StackMiddleware\NegotiationMiddleware->handle()
- StackedHttpKernel.php:23, Stack\StackedHttpKernel->handle()
- DrupalKernel.php:693, Drupal\Core\DrupalKernel->handle()
- index.php:19, {main}()