On a Drupal 8 site, I see an error on a block which says:

This block is broken or missing. You may be missing content or you might need to enable the original module.

How can I resolve this error?

up vote 5 down vote accepted

You have created a Custom block and the custom block was placed in a region, then you lost the custom block maybe was deleted or you made a Config Export from one environment and a Config Import in other. So the custom block is no longer exists but in the Block layout page (admin/structure/block), the references exist.

So, remove the missing Block from the Block layout page (admin/structure/block) and create again the Custom block and place it again in the region.

There is a core issue open discussing this problem: https://drupal.org/project/drupal/issues/2756331

This can also be overcome by using this module: https://www.drupal.org/project/recreate_block_content

  • Thanks, What can be done to resolve the issue? Do I need to recreate the block with same ID/class? – madan kumar Jan 31 at 19:20
  • @madankumar see the las part of the answer. – Adrian Cid Almaguer Jan 31 at 19:21
  • Thanks for the suggestion, I will try this out and let you know. – madan kumar Jan 31 at 19:24
  • The problem here is that the instance of the block is content while the configuration of the block is config. This means that the block itself doesn't get transferred between environments while the config for the block does. I'm pretty sure there is a Drupal Core issue about this somewhere. – lukedekker Jan 31 at 19:25
  • 2
    @lukedekker This is the core issue: drupal.org/project/drupal/issues/2756331. Someone's written a module to help with the process in the meantime: drupal.org/project/fixed_block_content – Clive Jan 31 at 20:02

The placement of the block is stored as configuration. This is what gets exported and synced between environments. The actual content of the block is considered exactly that: content. This means that when you import your new configuration into a different environment (or delete the block and then re-import the configuration) there is a mismatch between the configuration for the block and the actual block instance (which no longer exists).

To resolve this issue, you simply need to delete the configuration for the missing block and then recreate the block. This allows your site to resolve the discrepancies.

Another option would be to use the fixed_block_content contributed module to manage this process for you.

There is a Drupal Core issue discussing this very thing. https://drupal.org/project/drupal/issues/2756331

I had the same problem with Views. After trying a different theme, some of my Views blocks were gone. I checked and the actual Views was disabled. I was able to restore it by going to the views page and "enabling" the Views and all the blocks displayed as expected.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.