Bug description
After upgrading a project from Statamic 5 to 6, some entry edit pages containing a specific fieldset in the CP became very slow and often end in a blank page/timeout.
The affected entries use a nested Replicator structure (page builder -> table block -> rows -> cells). Each cell has two link field instances (link and documents_link) behind conditionals.
For one failing entry, I analyzed the CP page source and measured the payload:
- Reconstructed CP source length: ~19mb
data-page attribute length: ~19mb (99% of CP source)- Decoded
data-page JSON length: ~11mb page.props.meta.replicator_blocks size: 11mb (97% of decoded data-page JSON)page.props.values.replicator_blocks size: 121kb
So the payload is dominated by field metadata, not the entry values.
The largest concrete duplication I could verify is repeated nested entry.meta under these paths:
page.props.meta.replicator_blocks.existing.<table_block_id>.table.existing.<row_id>.table_cells.existing.<cell_id>.link.entry.metapage.props.meta.replicator_blocks.existing.<table_block_id>.table.existing.<row_id>.table_cells.existing.<cell_id>.documents_link.entry.meta
Counts in this entry:
- Table blocks:
20 - Table rows:
126 - Table cells:
504 link.entry.meta occurrences: 504documents_link.entry.meta occurrences: 504- Total nested copies:
1,008
All 1,008entry.meta payloads are identical in this case.
I know there was recent Replicator work in #13427 (improving page-load performance), but this case still reproduces on my setup.
I've also brought this up on Discord here.
Here is a meta.json field showing the duplicated metadata object inside page-json
meta.json
How to reproduce
- Use Statamic
6.18.1 (or current 6.x). - Create a blueprint with nested Replicators or add the ones I attached:
- top-level block Replicator
- table block containing row Replicator
- In each cell, define two
type: link fields (link, documents_link) with conditional visibility. - Create an entry with many table cells (example failing entry: 20 table blocks, 126 rows, 504 cells, many links populated).
- Open the entry edit page in the CP.
- Inspect page source:
data-page payload is very large and mostly props.meta.replicator_blocks.
blocks.yaml
table.yaml
Logs
Environment
EnvironmentLaravel Version: 13.4.0PHP Version: 8.5.5Composer Version: 2.9.5Environment: localDebug Mode: ENABLEDMaintenance Mode: OFFTimezone: Europe/ViennaLocale: enCacheConfig: NOT CACHEDEvents: NOT CACHEDRoutes: NOT CACHEDViews: NOT CACHEDDriversBroadcasting: logCache: fileDatabase: mysqlLogs: stack / singleMail: microsoft-graphQueue: syncSession: fileStoragepublic/storage: NOT LINKEDStatamicAddons: 2License Key: Not setSites: 7 (German, Romanian, Czech, and 4 more)Stache Watcher: EnabledStatic Caching: DisabledVersion: 6.18.1 PROStatamic Addonsmia/statamic-image-renderer: 2.0.0withcandour/aardvark-seo: 6.0.2
Installation
Other (please explain)
Additional details
No response
Bug description
After upgrading a project from Statamic 5 to 6, some entry edit pages containing a specific fieldset in the CP became very slow and often end in a blank page/timeout.
The affected entries use a nested Replicator structure (page builder -> table block -> rows -> cells). Each cell has two
linkfield instances (linkanddocuments_link) behind conditionals.For one failing entry, I analyzed the CP page source and measured the payload:
data-pageattribute length: ~19mb (99% of CP source)data-pageJSON length: ~11mbpage.props.meta.replicator_blockssize: 11mb (97% of decodeddata-pageJSON)page.props.values.replicator_blockssize: 121kbSo the payload is dominated by field metadata, not the entry values.
The largest concrete duplication I could verify is repeated nested
entry.metaunder these paths:page.props.meta.replicator_blocks.existing.<table_block_id>.table.existing.<row_id>.table_cells.existing.<cell_id>.link.entry.metapage.props.meta.replicator_blocks.existing.<table_block_id>.table.existing.<row_id>.table_cells.existing.<cell_id>.documents_link.entry.metaCounts in this entry:
20126504link.entry.metaoccurrences:504documents_link.entry.metaoccurrences:5041,008All
1,008entry.metapayloads are identical in this case.I know there was recent Replicator work in #13427 (improving page-load performance), but this case still reproduces on my setup.
I've also brought this up on Discord here.
Here is a
meta.jsonfield showing the duplicated metadata object insidepage-jsonmeta.json
How to reproduce
6.18.1(or current 6.x).type: linkfields (link,documents_link) with conditional visibility.data-pagepayload is very large and mostlyprops.meta.replicator_blocks.blocks.yaml
table.yaml
Logs
Environment
Installation
Other (please explain)
Additional details
No response