Problem/Motivation
The Syndicate block was deprecated in 11.2.x and the config remains, block.block.olivero_syndicate.
Found when working on creating the 11.3.0 database dumps.
Steps to reproduce
Proposed resolution
TBD
Remaining tasks
Either remove it silently or leave it and sites may get schema errors.
User interface changes
Introduced terminology
API changes
Data model changes
Release notes snippet
The Syndicate block (RSS feed icon) was deprecated in Drupal 11.2.0 with no replacement. At that time it was removed from the Standard profile and the Olivero theme. The block plugin has been removed in Drupal 12.0.0. Any configured placement of that block is removed when updating to Drupal 12.0.0, unless it is owned by a different module.
LLM disclosure
LLM was used to accelerate building this MR, it was reviewed closely though.
Issue fork drupal-3581349
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
- 3581349-remove-syndicate-block
changes, plain diff MR !17231
Comments
Comment #2
catchSo I think we have two choices:
1. Leave things as they are but with a prominent note in the 12.0.0 release notes that sites should manually delete the block prior to upgrading.
2. Add a pair update to delete config for the block in any theme block config. Probably also with a loud-ish release note.
Comment #3
quietone commentedComment #4
xjmWhat if we do option 1 in D12 and option 2 in D13? Because people could theoretically have customized this block with their own customizations or written things around it.
Comment #5
gábor hojtsyThis issue is currently listed as a Drupal 12 beta requirement although in a confusing way under a checked off section :) Is this blocking Drupal 12 beta?
Also is this Olivero specific? Olivero is not even in core anymore in Drupal 12 :)
Comment #6
catchI'm finding this issue confusing so going to write up my confusion in the hope it makes things clearer, if only for me.
Once upon a time core included a syndicate block, which had config.
In #3518990: Deprecate SyndicateBlock we deprecated the syndicate block.
In #3571623: Remove deprecated code from the Node module we removed the syndicate block.
However we removed the code, we didn't add an update to delete the config.
Because of this, the config still exists in the update test database dumps, or it did in March 2026.
Possibly it doesn't now if Olivero was uninstalled?
It may also exist on real sites that used to have the syndicate block enabled before we removed the code for it.
If a site re-implemented the syndicate block when it was removed, then they might need the config around - essentially they've taken ownership of it.
But other sites might have 'zombie' config for the block, that no longer has a plugin associated.
We can either leave things how they are, with a CR to tell people to check for the zombie config in their config exports and delete it if they don't want it, at the risk that people don't do that and eventually it causes some kind of a problem for them (and us). Or we can try to delete the zombie config at the risk that sites are somehow still genuinely relying on it.
Comment #7
gábor hojtsyGood archeology :) Even though #3571623: Remove deprecated code from the Node module was in March 6 months ago it was only on main and not backported of course. So no released version of Drupal yet had the zombie config. So people could not have implemented ownership of the config yet. We have not yet made the config a zombie as far as I see?
The only case a site would take ownership of that is if they install a contrib of custom solution that takes that config over before running the Drupal 12 update. That could still happen, but it could not have happened yet I think? So we can remove the config and document it, then any contrib or custom take-over code would probably move the config away from where it was to avoid the update hook from finding it later when it runs.
That is my understanding at least :D
Comment #9
gábor hojtsyComment #10
gábor hojtsyComment #11
gábor hojtsyAdded this release notes snippet, hopefully useful?
Comment #12
catchThis looks OK to me.
We could still decide not to do this at all and just add a CR, but if we're going to add an update can't really think of anything else.
Comment #13
xjmYeah we should have a CR and the RN link the CR. RN are not a good format for devs searching "wait wat?"
Started off very confused as to why were adding more of this rather than less, but it's test fixtures.
So we're proving the contrib module can take it over, but doesn't mean that Olivero has the same data integrity problem? (We might choose to go ahead anyway but should at least file an issue over there so they know about it.)
Comment #14
catchThe update will cover any syndicate block regardless of the theme it's created in, so it will cover Olivero too.
It won't cover situations like using the syndicate block plugin in Layout Builder or Canvas, but that's a problem with any block plugin situation and has an open issue #3521221: Block plugins need to be able to update their settings in multiple different storage implementations.
I also think the specific case of the syndicate block is extremely unlikely to be added to layout builder or canvas.
Added a CR
Comment #15
catchComment #16
xjmIndeed.
CR looks good to me. Adding the link to the RN. ...crossposting with Gábor on adding the link to the RN I think.
Comment #18
godotislateUpdate test coverage looks pretty comprehensive to me.
Committed be4d779 and pushed to main. Thanks!
Comment #21
godotislateAlmost forgot 12.0.x.