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_execandmaildisabled 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/jsoninstead oftext/html(with a strayx-matomo-request-idresponse 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 = 1to 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 addeddefine('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=dayfollowed bycore:archivedoes successfully create archive_numeric rows for UserCountry and Actions, with correct values. However, this archive has a single legacy-styledoneflag (value 1) rather than the modern per-plugin hasheddone<hash>.PluginNameflag 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.