Skip to content

Block Classes third party settings validation error when applying recipes via drush #53

@jjroelofs

Description

@jjroelofs

Problem

When applying DXPR CMS recipes via ddev drush recipe command, blocks with block_classes third party settings fail with validation errors like:

There were validation errors in block.block.dxpr_theme_views_block__case_studies_latest:
- third_party_settings.block_classes.block_class: 'block_class' is not a supported key.
- third_party_settings.block_classes: 'uuid' is a required key.
- third_party_settings.block_classes: 'langcode' is a required key.
- third_party_settings.block_classes: 'status' is a required key.
- third_party_settings.block_classes: 'dependencies' is a required key.
- third_party_settings.block_classes: 'id' is a required key.
- third_party_settings.block_classes: 'theme' is a required key.
- third_party_settings.block_classes: 'region' is a required key.
- third_party_settings.block_classes: 'weight' is a required key.
- third_party_settings.block_classes: 'provider' is a required key.
- third_party_settings.block_classes: 'plugin' is a required key.
- third_party_settings.block_classes: 'settings' is a required key.
- third_party_settings.block_classes: 'visibility' is a required key.

When selecting the case study recipe during site-installation in the UI (wizard) the block classes actually do get imported just fine despite warnings.

Affected Files

  • recipes/dxpr_cms_case_study/config/block.block.dxpr_theme_views_block__case_studies_latest.yml
  • recipes/dxpr_cms_multilingual/config/block.block.dxpr_theme_languageswitcher.yml

Expected vs Actual Behavior

  • Expected: Block classes should apply correctly when installing recipes via ddev drush recipe
  • Actual: Validation errors prevent recipe installation
  • Note: Block classes work perfectly fine during initial site installation via the web interface

Root Cause

The block_classes module schema validation expects the third party settings to conform to a specific structure, but the current configuration only includes the block_class property. The validation seems to expect the entire block entity structure within the third_party_settings, which is incorrect.

Workaround

Currently removing block_classes third party settings from affected block configs:

third_party_settings: {}

Instead of:

third_party_settings:
  block_classes:
    block_class: 'container bg-primary-subtle py-4 px-3'

Steps to Reproduce

  1. Install DXPR CMS ddev drush site-install dxpr_cms_installer dxpr_cms_installer_keys.dxpr_key='YOUR_DXPR_API_KEY' -y
  2. Try to apply any recipe containing blocks with block_classes third party settings: ddev drush recipe ../recipes/dxpr_cms_case_study
  3. Observe validation error

Environment

  • Drupal version: 11.x
  • DXPR CMS version: Latest
  • Block Class module version: Latest
  • Installation method: DDEV

Related Modules

  • block_classes
  • Drupal core recipes system
  • Configuration management system

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions