Matomo_scheduled_archive only ever invalidates/archives VisitsSummary and Goals — other reports (Actions, UserCountry, etc.) never get archived

matomo_scheduled_archive only ever invalidates/archives VisitsSummary and Goals — other reports (Actions, UserCountry, etc.) never get archived

Environment:

  • Matomo for WordPress 5.12.1 (Matomo core 5.12.0)
  • WordPress 7.1, PHP 8.4.24, MySQL 11.4.13
  • Fresh install (deleted old install, reinstalled from scratch)
  • Host: shared cPanel/LiteSpeed hosting, with shell_exec and mail disabled server-wide (confirmed by host)

Symptom

New visits are tracked correctly (visible in the Visits Log), but the dashboard’s other widgets (map, cities, landing pages, etc.) never populate. Matomo shows “It looks like reports for this period have not been processed yet.”

What I’ve confirmed

Querying archive_numeric for today’s date directly shows the scheduled matomo_scheduled_archive WP-Cron task only ever creates archives for VisitsSummary and Goals (per-plugin done<hash>.PluginName flags), regardless of how many times it runs. No entries for Actions, UserCountry, or any other plugin ever appear — not stuck, just never created.

The archive_invalidations table is consistently empty — nothing is queued for those plugins at all, for any date.

What I’ve ruled out

  • LiteSpeed Cache: separately, I found and reported a genuine bug where LSCWP being active causes the Archive Reports button’s POST response to come back as application/json instead of text/html (with a stray x-matomo-request-id response header, suggesting Matomo’s own request router intercepts it). However, this archiving-scope issue persists even with LiteSpeed Cache fully disabled, so it’s a separate problem.
  • Browser-triggered archiving: manually added enable_browser_trigger_archiving = 1 to config.ini.php’s [General] section (it wasn’t present, so was on whatever the default is) — no change. Viewing the Locations report directly in the browser does not trigger any new archiving.
  • Async/CliMulti + disabled shell_exec: since our host disables shell_exec, I added define('MATOMO_SUPPORT_ASYNC_ARCHIVING', false); to wp-config.php per the documented fix for this scenario. No change — still only VisitsSummary/Goals get archived.
  • Stuck invalidations: ran core:reset-invalidations --idsite=1 --dry-run — “No invalidations found.” Nothing is stuck.
  • Manual invalidation works, but isn’t recognized: running core:invalidate-report-data --sites=1 --dates=<today> --periods=day followed by core:archive does successfully create archive_numeric rows for UserCountry and Actions, with correct values. However, this archive has a single legacy-style done flag (value 1) rather than the modern per-plugin hashed done<hash>.PluginName flag that the cron-created VisitsSummary/Goals archives use — and Matomo’s UI still reports the reports as unprocessed afterward, suggesting it isn’t recognizing this archive as valid for those specific plugins.

Question

Why would the scheduled invalidateOutdatedArchives/matomo_scheduled_archive task only ever flag VisitsSummary and Goals for archiving, never any other plugin, on a fresh install with no unusual configuration? And separately, why would a manually-created archive (via core:invalidate-report-data + core:archive) not be recognized by the reporting UI despite containing correct data and a valid done=1 flag?

Happy to provide config.ini.php contents, exact SQL query results, or grant temporary access if useful for diagnosis.