Change record status: 
Project: 
Introduced in branch: 
11.3.x
Introduced in version: 
11.3.0
Description: 

Recipes can now skip running config actions on entities that don't exist. For example:

config:
  actions:
    ?canvas.component.block.project_browser_block.recipes:
      disable: []

This will run the disable config action on the canvas.component.block.project_browser_block.recipes config entity -- if and only if that entity exists. If it doesn't exist, all of its config actions will be skipped.

This syntax cannot be combined with wildcards. So this, for example, will throw an exception:

config:
  actions:
    ?canvas.component.block.system_menu_block.*:
      disable: []

The reason this won't work with wildcards is because wildcards, by their nature, imply the "skip if not exists" behavior. If a wildcard doesn't turn up any config entities to work on, nothing happens anyway -- so using ? in combination with that would be redundant.

Impacts: 
Module developers
Site templates, recipes and distribution developers