A fresh install of this module sometimes ends in the following error

Error: > >  [error]  InvalidArgumentException: Class "pagedesigner_view_modes_display_entity_type_alter" does not exist. in Drupal\Core\DependencyInjection\ClassResolver->getInstanceFromDefinition() (line 32 of /var/www/html/app/public/core/lib/Drupal/Core/DependencyInjection/ClassResolver.php) #0 /var/www/html/app/public/core/lib/Drupal/Core/Utility/CallableResolver.php(78): Drupal\Core\DependencyInjection\ClassResolver->getInstanceFromDefinition()
> > #1 /var/www/html/app/public/core/lib/Drupal/Core/Extension/ModuleHandler.php(742): Drupal\Core\Utility\CallableResolver->getCallableFromDefinition()
> > #2 [internal function]: Drupal\Core\Extension\ModuleHandler->getHookImplementationList()
> > #3 /var/www/html/app/public/core/lib/Drupal/Core/Extension/ModuleHandler.php(476): array_map()
> > #4 /var/www/html/app/public/core/lib/Drupal/Core/Extension/ModuleHandler.php(457): Drupal\Core\Extension\ModuleHandler->getCombinedListeners()
> > #5 /var/www/html/app/public/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php(389): Drupal\Core\Extension\ModuleHandler->alter()
> > #6 /var/www/html/app/public/core/lib/Drupal/Core/Entity/EntityTypeManager.php(123): Drupal\Core\Plugin\DefaultPluginManager->alterDefinitions()
> > #7 /var/www/html/app/public/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php(216): Drupal\Core\Entity\EntityTypeManager->findDefinitions()
> > #8 /var/www/html/app/public/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryCachedTrait.php(25): Drupal\Core\Plugin\DefaultPluginManager->getDefinitions()
> > #9 /var/www/html/app/public/core/lib/Drupal/Core/Entity/EntityTypeManager.php(132): Drupal\Core\Plugin\DefaultPluginManager->getDefinition()
> > #10 /var/www/html/app/public/core/lib/Drupal/Core/Entity/EntityTypeManager.php(260): Drupal\Core\Entity\EntityTypeManager->getDefinition()
> > #11 /var/www/html/app/public/core/lib/Drupal/Core/Entity/EntityTypeManager.php(192): Drupal\Core\Entity\EntityTypeManager->getHandler()
> > #12 /var/www/html/app/public/modules/contrib/masquerade/src/Masquerade.php(90): Drupal\Core\Entity\EntityTypeManager->getStorage()
> > #13 [internal function]: Drupal\masquerade\Masquerade->__construct()
> > #14 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1197): ReflectionClass->newInstanceArgs()
> > #15 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(632): Symfony\Component\DependencyInjection\ContainerBuilder->createService()
> > #16 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1315): Symfony\Component\DependencyInjection\ContainerBuilder->doGet()
> > #17 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1267): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices()
> > #18 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1794): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices()
> > #19 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1223): Symfony\Component\DependencyInjection\ContainerBuilder->callMethod()
> > #20 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(632): Symfony\Component\DependencyInjection\ContainerBuilder->createService()
> > #21 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1315): Symfony\Component\DependencyInjection\ContainerBuilder->doGet()
> > #22 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1260): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices()
> > #23 /var/www/html/app/vendor/symfony/dependency-injection/ContainerBuilder.php(1271): Symfony\Component\DependencyInjection\ContainerBuilder->resolveServices()
> > #24 /var/www/html/app/vendor/symfony/event-dispatcher/EventDispatcher.php(243): Symfony\Component\DependencyInjection\ContainerBuilder->Symfony\Component\DependencyInjection\{closure}()
> > #25 /var/www/html/app/vendor/symfony/event-dispatcher/EventDispatcher.php(206): Symfony\Component\EventDispatcher\EventDispatcher::Symfony\Component\EventDispatcher\{closure}()
> > #26 /var/www/html/app/vendor/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\Component\EventDispatcher\EventDispatcher->callListeners()
> > #27 /var/www/html/app/vendor/symfony/http-kernel/HttpKernel.php(114): Symfony\Component\EventDispatcher\EventDispatcher->dispatch()
> > #28 /var/www/html/app/public/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(66): Symfony\Component\HttpKernel\HttpKernel->terminate()
> > #29 /var/www/html/app/public/core/lib/Drupal/Core/DrupalKernel.php(719): Drupal\Core\StackMiddleware\StackedHttpKernel->terminate()
> > #30 /var/www/html/app/vendor/drush/drush/src/Boot/DrupalBoot8.php(317): Drupal\Core\DrupalKernel->terminate()
> > #31 [internal function]: Drush\Boot\DrupalBoot8->terminate()
> > #32 {main}. 

which is weird, since the only non-core file in the stacktrace comes from masquerade
the line triggering the error from masquerade is this

  public function __construct(AccountInterface $current_user, EntityTypeManagerInterface $entity_type_manager, ModuleHandlerInterface $module_handler, SessionManagerInterface $session_manager, SessionInterface $session, LoggerInterface $logger, PermissionHandlerInterface $permission_handler) {
    $this->currentUser = $current_user;
    $this->userStorage = $entity_type_manager->getStorage('user');  <-- THIS LINE
    $this->moduleHandler = $module_handler;
    $this->sessionManager = $session_manager;
    $this->logger = $logger;
    $this->permissionHandler = $permission_handler;
    $this->session = $session;
  }

i could not find the actual root cause of the problem but a solution.

moving the pagedesigner_view_modes_display_entity_type_alter hook from .module to new src/Hook/PagedesignerViewModesDisplayHooks.php and using php attributes to set the hook fixes the issue, because with this the hook can now be resolved.

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:

Comments

johannes.heinzerling created an issue. See original summary.

johannes.heinzerling’s picture

Issue summary: View changes
johannes.heinzerling’s picture

I have patched the module with the given MR and our CI/CD pipeline is now fixed
-> Needs Review

johannes.heinzerling’s picture

Status: Active » Needs review

guillaumepacilly’s picture

Status: Needs review » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

guillaumepacilly’s picture

Status: Fixed » Closed (fixed)