What happened?
Description
When an entry is saved and a revision is created, Matrix/nested entry blocks with propagationMethod: none are not captured in the revision for the saving site. Reverting to that revision deletes the blocks on that site. Other sites' blocks appear unaffected by the revert itself, but the corrupted state then propagates when drafts are applied or further reverts are made.
Steps to reproduce
- Set up a multi-site Craft install (e.g. English + French)
- Create a section with
propagationMethod: all
- Add a Matrix field with
propagationMethod: none (blocks per-site)
- Create an entry on the English site and add Matrix blocks
- Switch to the French site and edit the same entry (e.g. add a block, change a field value) — this creates a new revision
- Revert to the revision that was just created (or any revision created from a non-English save)
- Revert to the revision that was just created — Matrix blocks on the French site are gone
- Check the English site — English blocks are still present
Expected behavior
Reverting to a revision should restore the Matrix blocks for the saving site to the state they were in when the revision was created.
Actual behavior
Matrix blocks with propagationMethod: none are not stored in the revision for the saving site. Reverting deletes blocks on that site. Other sites' blocks survive the initial revert, but the now-corrupted state (missing blocks on one site) gets baked into subsequent drafts and revisions, cascading the data loss across sites over time.
Environment
- Craft CMS: 5.9.18
- PHP: 8.2
- Database: MySQL 8
- Multi-site: 6 sites (EN, FR, DE, IT, PT, ES)
- Matrix field propagation:
none
- Section propagation:
all
Screenshots
Edit made on FR site:
Reverting back to previous revision removes all blocks instead of removing the edit only:
Craft CMS version
5.9.18
PHP version
8.2
Operating system and version
No response
Database type and version
No response
Image driver and version
No response
Installed plugins and versions
- craftcms/redactor: 4.2.0
- craftcms/element-api: 4.2.0
- craftcms/html-field: 3.4.0
- digitalpulsebe/craft-multi-translator: 2.23.2
- nystudio107/craft-retour: 5.0.14
- putyourlightson/craft-blitz: 5.12.8
- putyourlightson/craft-sprig: 3.7.2
- verbb/super-table: 4.0.5
What happened?
Description
When an entry is saved and a revision is created, Matrix/nested entry blocks with
propagationMethod: noneare not captured in the revision for the saving site. Reverting to that revision deletes the blocks on that site. Other sites' blocks appear unaffected by the revert itself, but the corrupted state then propagates when drafts are applied or further reverts are made.Steps to reproduce
propagationMethod: allpropagationMethod: none(blocks per-site)Expected behavior
Reverting to a revision should restore the Matrix blocks for the saving site to the state they were in when the revision was created.
Actual behavior
Matrix blocks with
propagationMethod: noneare not stored in the revision for the saving site. Reverting deletes blocks on that site. Other sites' blocks survive the initial revert, but the now-corrupted state (missing blocks on one site) gets baked into subsequent drafts and revisions, cascading the data loss across sites over time.Environment
noneallScreenshots
Edit made on FR site:
Reverting back to previous revision removes all blocks instead of removing the edit only:
Craft CMS version
5.9.18
PHP version
8.2
Operating system and version
No response
Database type and version
No response
Image driver and version
No response
Installed plugins and versions