Config Split 1.x cannot be installed if Config Ignore is installed

Created on 2 June 2025, about 1 month ago

Problem/Motivation

If Config Ignore is installed, you cannot subsequently install Config Split 1.x. When you attempt to, you get the following fatal error:

The "config_split" entity type does not exist.

This is because of a particularly fun chain of events:

  1. Before installing the config split entity type, the module installer calls \Drupal::service('router.route_provider')
  2. The route provider depends on the cache_tags.invalidator service
  3. Instantiation of the cache tags invalidator requires instantiating all individual cache tag invalidators, including the config_ignore.event_subscriber service
  4. The config ignore event subscriber requires the config.storage.sync service
  5. With Config Filter and Config Split 1.x that is the filtered storage so this fetches all config filter definitions
  6. Fetching the config filter definitions ends up calling SplitFilterDeriver::create()
  7. SplitFilterDeriver::create() calls $container->get('entity_type.manager')->getStorage('config_split')
  8. 💥

Steps to reproduce

drush si -y
drush en -y config_ignore
drush en -y config_split # with config_split 1.x

Proposed resolution

?

Remaining tasks

User interface changes

-

API changes

Data model changes

🐛 Bug report
Status

Active

Version

2.0

Component

Code

Created by

🇩🇪Germany tstoeckler Essen, Germany

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

Comments & Activities

Production build 0.71.5 2024