After enabling or re-enabling the Funnels plugin, a large and growing archive invalidation backlog can appear during cron archiving. Instead of decreasing, each archiving run may schedule new invalidations.

This behaviour is more noticeable when Funnels are used with segments, especially those based on Referrers.

Why Funnels trigger high invalidation volumes

Funnels introduce additional report processing that depends on visit-level and action-level data. When combined with segments, Matomo must reprocess historical data to ensure accuracy.

Referrers-based segments increase the impact because:

  • Referrer data is stored at the visit level and affects attribution.
  • Funnels rely on ordered user interactions across visits or actions.
  • Any mismatch between archived data and segment logic triggers re-archiving.

This creates a feedback loop where Funnels require recalculation of segmented data. When segments detect outdated archives, new invalidations are scheduled.

The backlog then grows when there is too much historical data included in re-archiving and invalidations are generated faster than they are processed.

How to resolve the invalidation backlog

Apply the following steps to reduce the backlog and prevent repeated invalidations.

1. Limit how much historical data is reprocessed

Set rearchive_reports_in_past_last_n_months = 1 to restrict re-archiving to recent data.

Reducing it (for example, to 1) limits reprocessing to recent data only. This helps reduce invalidation scope and helps the system converge.

2. Check pending invalidations

Run the following query to review the current backlog where ReArchiveList shows scheduled invalidations.

SELECT * FROM `matomo_option` WHERE option_name = 'ReArchiveList';

The number of entries should decrease over time. If it keeps growing or does not decrease after archiving runs, the system is not converging.

3. Reach a steady state

Focus on reducing the scope of re-archiving and ensuring consistent archiving behaviour:

  1. Set rearchive_reports_in_past_last_n_months = 1
  2. Use only cron archiving and disable browser archiving.
  3. If needed, clear existing invalidations before running archiving again.

After applying these changes, monitor the backlog over several runs. It should gradually decrease, and new invalidations should stop being scheduled repeatedly.

Previous FAQ: How is funnel data archived?