# Troubleshooting

Start with the smallest reproducible path: one populated source object, one Loop Item, and one Loop Grid. Confirm that works before re-enabling filters, lightbox, cache optimization, or aggregate queries.

In version 2.4+, edit the Loop Grid or Loop Carousel and open **Content → Troubleshooting**. Enable **Context Inspector** temporarily to verify the provider, resolved object, row source, row count, and active pipeline. The report is editor-only and contains metadata rather than row values. See [Context Inspector](/context-inspector).

## Plugin controls do not appear

Confirm that:

- Elementor and Elementor Pro are active.
- Secure Custom Fields or ACF Pro is active.
- Dynamic ACF Repeater for Elementor is active.
- You are editing a classic Loop Grid, Loop Carousel, or Loop Item—not an Atomic Element.

In Pro, the Plugins screen should identify **Dynamic ACF Repeater for Elementor PRO** and show Freemius license actions.

## The Loop Item preview is blank

1. Populate the selected row source on a real post, term, user, or Options Page.
2. In the Loop Item document settings, select the correct **ACF Repeater Field for Loop** or **ACF Row Schema for Loop**.
3. Set Elementor's preview source to the populated object.
4. Confirm the dynamic tag points to a subfield in that schema.

For Flexible Content, the preview object must contain the specific layout selected by the Loop Item schema.

## The frontend shows no rows

- Confirm the Loop Grid query toggle is enabled.
- Confirm the widget's row source matches the Loop Item schema.
- Check [Repeater Context](/contexts), especially on archives, Options Pages, user profiles, and Theme Builder templates.
- Leave **Query Current Post Only** enabled unless you intentionally want aggregate rows.
- Verify the frontend object actually contains published data.

## The wrong post's rows appear

Check both context and query scope:

- **Repeater Context** decides which SCF/ACF object owns the rows.
- **Query Current Post Only** decides whether Elementor can aggregate rows from multiple source posts.

Also verify Elementor's Theme Builder display conditions and preview source; the preview source does not control the published page.

## Nested fields are blank

Select the same terminal path for the Loop Item schema and Loop widget row source. A subfield from a parent Repeater is not part of the child Repeater schema unless it is also present in the resolved row context.

If a field was deleted and recreated, reselect it. SCF/ACF assigns a new field key even when the label and name look identical.

## A Flexible Content layout uses the wrong template

- Select **ACF Flexible Content** under **Choose template type**.
- Confirm the correct Flexible Content source is selected.
- Recheck every generated layout-to-template control.
- Review **Unmapped Layouts**: the default intentionally uses the normal Loop template; **Skip Row** intentionally produces no item.

## Relationship results are empty or incomplete

- Confirm the selected field is Relationship or Post Object.
- For a nested field, confirm the complete Group, Flexible Content, or Repeater path is selected. Pro supports deep mixed structural paths.
- Verify the field belongs to the resolved source context.
- Check Elementor's `posts_per_page`; Relationship Query preserves that limit.
- Confirm the selected posts still exist and have a status visible to the current visitor.

## A taxonomy filter does not match the expected rows

Confirm the selected taxonomy and whether matching should use the Repeater Taxonomy subfield or the owning post's terms. The filter does not match arbitrary Repeater text or meta.

For multiple filters, assign a unique **Filter Parameter Name** to each widget and remove stale filter parameters from the URL while testing.

## Row search, sorting, or ranges return unexpected rows

- Confirm **Enable Row Controls** is on and the intended scalar fields are selected.
- Search terms are tokenized; every typed token must occur somewhere across the selected searchable fields.
- Number/date ranges exclude rows with missing or invalid comparable values. A minimum greater than the maximum intentionally returns no rows.
- Sorting keeps missing values last and preserves original row order for equal values.
- Taxonomy filtering, row search, ranges, and sorting run before one final pagination step.
- With multiple widgets, keep each URL parameter prefix distinct; the widget ID is appended automatically.

See [Row Search and Sorting](/row-search-sorting).

## Filter update returns 403 Forbidden

Current filter requests require a signed, widget-bound render context. A 403 usually means the page or request was generated by an older plugin version, cached markup contains a stale signature, or a custom request omitted the current context.

1. Confirm the frontend and repository are running the same plugin version.
2. Use Elementor's **Clear Files & Data** tool.
3. Clear page, CDN, object, and browser caches.
4. Reload the page to obtain current widget markup.
5. Do not replay or hand-build the REST request from an old public endpoint example.

The endpoint is intentionally not an unsigned public rendering API.

## Stale editor assets or styles

Symptoms include old lightbox trigger buttons, a visual panel the current template does not contain, dimensions that ignore current controls, or JavaScript behavior from a previous release.

1. Verify the installed plugin version on **Plugins**.
2. Use Elementor **Tools → Clear Files & Data**.
3. Hard-refresh the editor and frontend.
4. Clear optimization/CDN caches.
5. Inspect the loaded plugin script URL and confirm its version matches the installed build.

Do not solve a stale asset problem by adding CSS against obsolete markup.

## Lightbox behavior is unexpected

- Clicking an interactive link or button intentionally does not open the lightbox; click a non-interactive part of the item.
- The lightbox clones your Loop Item. Set the Loop Item container's own background and dimensions in Elementor.
- **Lightbox Background** styles the overlay, not the cloned card.
- Use **Repeater Lightbox Visibility** to hide or reveal specific elements by context.
- If carousel items appear duplicated in the lightbox, clear stale assets; current code deduplicates Elementor's cloned slides.

## Get support

When reporting a problem, include:

- Plugin Free/Pro edition and version
- WordPress, PHP, Elementor, Elementor Pro, and SCF/ACF versions
- Row-source structure and context setting
- Whether the problem occurs in editor, frontend, or both
- Browser console error and failed request response, with license keys and authorization tokens removed

Use the [WordPress.org support forum](https://wordpress.org/support/plugin/dynamic-elementor-acf-repeater/) for Free or [GitHub issues](https://github.com/calculabs/elementor-acf-repeater/issues) for reproducible plugin bugs.
