TypeError: EntityListBuilder::getOperations(): Argument #1 must be of type EntityInterface

Created on 16 May 2025, 22 days ago

Problem/Motivation

Linked with Allow deleting Content Template entity without deleting source Node Active , upon deleting a Content Template at /admin/content/template, I get the following error:

The website encountered an unexpected error. Try again later.

TypeError: Drupal\Core\Entity\EntityListBuilder::getOperations(): Argument #1 ($entity) must be of type Drupal\Core\Entity\EntityInterface, null given, called in /app/web/modules/contrib/content_templates/src/ContentTemplateListBuilder.php on line 47 in Drupal\Core\Entity\EntityListBuilder->getOperations() (line 131 of core/lib/Drupal/Core/Entity/EntityListBuilder.php).
Drupal\content_templates\ContentTemplateListBuilder->getOperations(Object) (Line: 242)
Drupal\Core\Entity\EntityListBuilder->buildOperations(Object) (Line: 224)
Drupal\Core\Entity\EntityListBuilder->buildRow(Object) (Line: 39)
Drupal\content_templates\ContentTemplateListBuilder->buildRow(Object) (Line: 272)
Drupal\Core\Entity\EntityListBuilder->render() (Line: 23)
Drupal\Core\Entity\Controller\EntityListController->listing('content_template')
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 593)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 121)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 183)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 54)
Drupal\simple_oauth\HttpMiddleware\BasicAuthSwap->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: 116)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 90)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 53)
Asm89\Stack\Cors->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: 709)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)

Steps to reproduce

  1. Set a Node as a Content Template
  2. Remove the Content Template in the UI

Proposed resolution

Adjust the delete handling accordingly.

Remaining tasks

Fix, review and test

User interface changes

N/A

API changes

N/A

Data model changes

N/A

🐛 Bug report
Status

Active

Version

1.2

Component

Code

Created by

🇧🇪Belgium baikho Antwerp, BE

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

Comments & Activities

  • Issue created by @baikho
  • 🇧🇪Belgium baikho Antwerp, BE
  • 🇩🇪Germany a.dmitriiev

    Sorry, but I can't reproduce the issue. The error trace says the problem is in line:

    $template_operations = parent::getOperations($entity);
    

    But $entity there is the entity from the list row. And the method getOperations is even type hinted, so are you sure you haven't made any modifications to that file?

Production build 0.71.5 2024