Import attempt via Configuration Synchronization UI fails with a fatal error

Issue information

From user: mxh

Related to !471 (merged) !472 (merged)

Contribution record

Fork management

Problem/Motivation

When trying to import a single ECA configuration via configuration synchronization UI, a fatal error occurs and the import does not succeed.

Steps to reproduce

  • Standard Drupal installation profile, install bpmn_io, eca_base, eca_user
  • Create a simple ECA configuration with at least one action and save it.
  • Manually export that ECA config item at /admin/config/development/configuration/single/export by just copying its contents
  • Change a label of one of the actions contained in the ECA configuration so that the UI will detect a change and will try to import it
  • Try to import it via /admin/config/development/configuration/single/import

The import attempt will fail with the following error message:

The website encountered an unexpected error. Try again later.

Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: You have requested a non-existent service "private__...". in Drupal\Component\DependencyInjection\Container->get() (line 157 of core/lib/Drupal/Component/DependencyInjection/Container.php).
Drupal\Core\Entity\EntityBase->__wakeup()

Proposed resolution

Reason that this error occurs is the action plugin manager being attached to the ECA object or entity. That service is a decorated instance provided by the decorator, i.e. that's not a service directly provided by the service container. Thus case needs special handling during de-serialization.

Remaining tasks

User interface changes

API changes

Data model changes

Edited by drupalbot
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information