Import attempt via Configuration Synchronization UI fails with a fatal error
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/exportby 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