Problem/Motivation

TypeError: Argument 1 passed to Drupal\single_content_sync\ContentSyncHelper::access() must implement interface Drupal\Core\Entity\EntityInterface, string given, called in ..\web\modules\contrib\single_content_sync\src\Form\ContentExportForm.php on line 249 in Drupal\single_content_sync\ContentSyncHelper->access() (line 193 of modules\contrib\single_content_sync\src\ContentSyncHelper.php).

The website encountered an unexpected error. Please try again later.
TypeError: Argument 1 passed to Drupal\single_content_sync\ContentSyncHelper::access() must implement interface Drupal\Core\Entity\EntityInterface, string given, called in ...\web\modules\contrib\single_content_sync\src\Form\ContentExportForm.php on line 249 in Drupal\single_content_sync\ContentSyncHelper->access() (line 193 of modules\contrib\single_content_sync\src\ContentSyncHelper.php).
Drupal\single_content_sync\ContentSyncHelper->access('taxonomy_term') (Line: 249)
Drupal\single_content_sync\Form\ContentExportForm->access()
call_user_func_array(Array, Array) (Line: 75)
Drupal\Core\Access\CustomAccessCheck->access(Object, Object, Object)
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.taxonomy_term.single_content:export', Array, Object, 1) (Line: 327)
Drupal\Core\Menu\LocalTaskManager->getTasksBuild('entity.taxonomy_term.canonical', Object) (Line: 358)
Drupal\Core\Menu\LocalTaskManager->getLocalTasks('entity.taxonomy_term.canonical', 0) (Line: 95)
Drupal\Core\Menu\Plugin\Block\LocalTasksBlock->build() (Line: 171)
Drupal\block\BlockViewBuilder::preRender(Array)
call_user_func_array(Array, Array) (Line: 101)
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: 772)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 363)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 435)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 201)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 181)
__TwigTemplate_269de16dc750e0d8e95bff682965aa39fadf5f6c247caf5446755561d83da1ea->block_content(Array, Array) (Line: 182)
Twig\Template->displayBlock('content', Array, Array) (Line: 63)
__TwigTemplate_269de16dc750e0d8e95bff682965aa39fadf5f6c247caf5446755561d83da1ea->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/custom/bsh_theme/templates/page/page.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('page', Array) (Line: 422)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 201)
Drupal\Core\Render\Renderer->render(Array) (Line: 479)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 87)
__TwigTemplate_ca0e26ceef34c2ebc2142b12c9cf900a06d22c039331a7549d0f76f92325b324->doDisplay(Array, Array) (Line: 405)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 378)
Twig\Template->display(Array) (Line: 390)
Twig\Template->render(Array) (Line: 55)
twig_render_template('themes/contrib/bootstrapper/templates/system/html.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('html', Array) (Line: 422)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 201)
Drupal\Core\Render\Renderer->render(Array) (Line: 162)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 564)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 163)
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: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 163)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 80)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 19)
Drupal\takeda_id\Middleware\Redirect->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->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: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 709)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)

Steps to reproduce

Visit a taxonomy term page and got this error above. Debug this code from "single_content_sync\src\Form\ContentExportForm.php" on line 249 found out value $entity = 'taxonomy_term' (string not an object)

  public function access() {
    $parameters = $this->getRouteMatch()->getParameters();
    $entity = $parameters->getIterator()->current();
    $hasAccess = $this->contentSyncHelper->access($entity);
    return $hasAccess ? AccessResult::allowed() : AccessResult::forbidden();
  }

Drupal version: 9.4.1
PHP: 7.4.3
Single content sync version: 1.3.4

Proposed resolution

Add condition to handle if $entity is not Object from interface Drupal\Core\Entity\EntityInterface

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

ghost1809 created an issue. See original summary.

nginex’s picture

Assigned: Unassigned » nginex

  • nginex committed 4e96093 on 1.3.x
    Issue #3293030: TypeError: Argument 1 passed to Drupal\...
nginex’s picture

Status: Active » Fixed

Thanks for reporting the bug. I've fixed the issue, it will be available in the new release 1.3.5 in a moment

nginex’s picture

Assigned: nginex » Unassigned
nginex’s picture

Status: Fixed » Closed (fixed)
ghost1809’s picture

Thank you for your works