Skip to content

Control panel freeze with Replicator → Replicator → Assets #15418

Description

@DutchBugs

Bug description

Saving an entry that has a nested Replicator → Replicator → Assets field structure causes the Control Panel to freeze after "Save & Publish": the save itself succeeds (200 response), but Inertia navigation is broken afterwards — clicking any other CP navigation link does nothing, and the user is stuck on the same entry-edit page until they do a hard browser refresh.

This only happens on the specific collection that has this nested field structure; other collections without it save and navigate normally.

Root cause (confirmed via browser console): a component instance's meta is null for one of the nested Assets fieldtype instances. AssetsFieldtype.vue accesses this.meta.dynamicFolder in data() without a null-check, which throws, orphaning the Vue component and breaking Inertia's SPA navigation until a hard refresh.

TypeError: Cannot read properties of null (reading 'dynamicFolder')
    at Proxy.data (AssetsFieldtype.vue:278)
I checked the latest tagged release (v6.31.0, published 2026-09-01) and the exact same unguarded line is still there:
// resources/js/components/fieldtypes/assets/AssetsFieldtype.vue:278
lockedDynamicFolder: this.meta.dynamicFolder,

This looks like the same class of bug as #13611 (Replicator → Bard → Replicator) and #14929 / PR #15033 (grid min_rows breaking CP navigation) — a nested-fieldtype instance receiving undefined/null meta, which crashes Vue's data() and leaves a broken component tree behind. #14929 is still open, so this looks like another unfixed variant of the same underlying issue rather than something already covered.

How to reproduce

  1. Create a blueprint with a top-level Replicator field.
  2. Inside that replicator's set, add a second, nested Replicator field.
  3. Inside the nested replicator's set, add an Assets field.
  4. Create an entry, fill in a few rows at both replicator levels (with an asset selected on some/all of the inner rows).
  5. Save & Publish.
  6. Try to navigate to any other page in the CP (e.g. click another entry in the sidebar, or a top-level nav item).
  7. Nothing happens — no navigation occurs, no visible error in the UI.
  8. Open the browser console: TypeError: Cannot read properties of null (reading 'dynamicFolder') at AssetsFieldtype.vue inside data().
  9. A hard refresh (Cmd/Ctrl+Shift+R) restores normal navigation until the next save on that same collection.

Logs

TypeError: Cannot read properties of null (reading 'dynamicFolder')
    at Proxy.data (AssetsFieldtype.vue:278:44)
    at callWithErrorHandling (runtime-core.esm-bundler.js:...)
    at ...

Environment

Statamic v6.29.0 (also reproduced against v6.31.0 source, unfixed)
Laravel 12, PHP 8.4.17
Control Panel: Vue 3 + Inertia
Affected fieldtype nesting: Replicator → Replicator → Assets
Reproduces consistently, on every save, for every editor

Installation

Fresh statamic/statamic site via CLI

Additional details

Related issues: #13611 (fixed, same root cause, different nesting) · #14929 (still open, same symptom) · #15033 (fixed one triggering case, not this one)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions