Error: Call to a member function hasCanonical() on null in Drupal\storage\Controller\StorageController->viewCanonicalAccess()

Created on 3 July 2025, 25 days ago

Problem/Motivation

Opening the Storage overview page, the following error shows up:

Error: Call to a member function hasCanonical() on null in Drupal\storage\Controller\StorageController->viewCanonicalAccess() (line 123 of modules/contrib/storage/src/Controller/StorageController.php).
call_user_func_array(Array, Array) (Line: 84)
Drupal\Core\Access\CustomAccessCheck->access(Object, Object, Object, NULL)
call_user_func_array(Array, Array) (Line: 160)
Drupal\Core\Access\AccessManager->performCheck('access_check.custom', Object) (Line: 136)
Drupal\Core\Access\AccessManager->check(Object, Object, NULL, 1) (Line: 93)
Drupal\Core\Access\AccessManager->checkNamedRoute('entity.storage.canonical', Array, NULL, 1) (Line: 832)
Drupal\Core\Url->access(NULL, 1) (Line: 132)
Drupal\Core\Field\Plugin\Field\FieldFormatter\StringFormatter->viewElements(Object, 'nl') (Line: 91)
Drupal\Core\Field\FormatterBase->view(Object, 'nl') (Line: 268)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 257)
Drupal\views\Entity\Render\EntityFieldRenderer->buildFields(Array) (Line: 143)
Drupal\views\Entity\Render\EntityFieldRenderer->render(Object, Object) (Line: 873)
Drupal\views\Plugin\views\field\EntityField->getItems(Object) (Line: 1195)
Drupal\views\Plugin\views\field\FieldPluginBase->advancedRender(Object) (Line: 238)
template_preprocess_views_view_field(Array, 'views_view_field', Array)
call_user_func_array('template_preprocess_views_view_field', Array) (Line: 261)
Drupal\Core\Theme\ThemeManager->render('views_view_field', Array) (Line: 490)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 1796)
Drupal\views\Plugin\views\field\FieldPluginBase->theme(Object) (Line: 769)
Drupal\views\Plugin\views\style\StylePluginBase->elementPreRenderRow(Array)
call_user_func_array(Array, Array) (Line: 113)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 886)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 431)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 708)
Drupal\views\Plugin\views\style\StylePluginBase->renderFields(Array) (Line: 574)
Drupal\views\Plugin\views\style\StylePluginBase->renderGrouping(Array, Array, 1) (Line: 462)
Drupal\views\Plugin\views\style\StylePluginBase->render() (Line: 2177)
Drupal\views\Plugin\views\display\DisplayPluginBase->render() (Line: 1593)
Drupal\views\ViewExecutable->render() (Line: 201)
Drupal\views\Plugin\views\display\Page->execute() (Line: 1690)
Drupal\views\ViewExecutable->executeDisplay('storage_page_list', Array) (Line: 81)
Drupal\views\Element\View::preRenderViewElement(Array)
call_user_func_array(Array, Array) (Line: 113)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 886)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 431)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 238)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 637)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 53)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 116)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 90)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 263)
Drupal\shield\ShieldMiddleware->bypass(Object, 1, 1) (Line: 130)
Drupal\shield\ShieldMiddleware->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 741)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
๐Ÿ› Bug report
Status

Active

Version

1.4

Component

Code

Created by

๐Ÿ‡ง๐Ÿ‡ชBelgium steveg.

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

  • Issue created by @steveg.
  • ๐Ÿ‡ฎ๐Ÿ‡ณIndia abhishek_virasat

    abhishek_gupta1 โ†’ made their first commit to this issueโ€™s fork.

  • Merge request !20fix the issue โ†’ (Open) created by abhishek_virasat
  • ๐Ÿ‡ฎ๐Ÿ‡ณIndia abhishek_virasat

    @steveg., I have fixed the issue and created MR, please review it once. thanks

  • ๐Ÿ‡ง๐Ÿ‡ชBelgium steveg.

    I've checked if is working after the patch you've provided. But again when opening the Storage overview page I get an error. I have installed Drupal core 10.5.1 and Storage Entities 1.4.0-rc1.

    Error: Call to a member function id() on null in Drupal\storage\Controller\StorageController->viewCanonicalAccess() (line 127 of modules/contrib/storage/src/Controller/StorageController.php).
    call_user_func_array(Array, Array) (Line: 84)
    Drupal\Core\Access\CustomAccessCheck->access(Object, Object, Object, NULL)
    call_user_func_array(Array, Array) (Line: 160)
    Drupal\Core\Access\AccessManager->performCheck('access_check.custom', Object) (Line: 136)
    Drupal\Core\Access\AccessManager->check(Object, Object, NULL, 1) (Line: 93)
    Drupal\Core\Access\AccessManager->checkNamedRoute('entity.storage.canonical', Array, NULL, 1) (Line: 832)
    Drupal\Core\Url->access(NULL, 1) (Line: 132)
    Drupal\Core\Field\Plugin\Field\FieldFormatter\StringFormatter->viewElements(Object, 'nl') (Line: 91)
    Drupal\Core\Field\FormatterBase->view(Object, 'nl') (Line: 268)
    Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 257)
    Drupal\views\Entity\Render\EntityFieldRenderer->buildFields(Array) (Line: 143)
    Drupal\views\Entity\Render\EntityFieldRenderer->render(Object, Object) (Line: 873)
    Drupal\views\Plugin\views\field\EntityField->getItems(Object) (Line: 1195)
    Drupal\views\Plugin\views\field\FieldPluginBase->advancedRender(Object) (Line: 238)
    template_preprocess_views_view_field(Array, 'views_view_field', Array)
    call_user_func_array('template_preprocess_views_view_field', Array) (Line: 261)
    Drupal\Core\Theme\ThemeManager->render('views_view_field', Array) (Line: 490)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
    Drupal\Core\Render\Renderer->render(Array) (Line: 1796)
    Drupal\views\Plugin\views\field\FieldPluginBase->theme(Object) (Line: 769)
    Drupal\views\Plugin\views\style\StylePluginBase->elementPreRenderRow(Array)
    call_user_func_array(Array, Array) (Line: 113)
    Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 886)
    Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 431)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
    Drupal\Core\Render\Renderer->render(Array) (Line: 708)
    Drupal\views\Plugin\views\style\StylePluginBase->renderFields(Array) (Line: 574)
    Drupal\views\Plugin\views\style\StylePluginBase->renderGrouping(Array, Array, 1) (Line: 462)
    Drupal\views\Plugin\views\style\StylePluginBase->render() (Line: 2177)
    Drupal\views\Plugin\views\display\DisplayPluginBase->render() (Line: 1593)
    Drupal\views\ViewExecutable->render() (Line: 201)
    Drupal\views\Plugin\views\display\Page->execute() (Line: 1690)
    Drupal\views\ViewExecutable->executeDisplay('storage_page_list', Array) (Line: 81)
    Drupal\views\Element\View::preRenderViewElement(Array)
    call_user_func_array(Array, Array) (Line: 113)
    Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 886)
    Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 431)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
    Drupal\Core\Render\Renderer->render(Array, ) (Line: 238)
    Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 637)
    Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231)
    Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128)
    Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
    Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
    call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
    Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 53)
    Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 116)
    Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 90)
    Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 263)
    Drupal\shield\ShieldMiddleware->bypass(Object, 1, 1) (Line: 130)
    Drupal\shield\ShieldMiddleware->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
    Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 741)
    Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Production build 0.71.5 2024