Skip to content

wp_missed_scheduled_post

Severity: Warning Signal: wp.cronpayload.type = missed_schedule

What this signal means

A post scheduled for automatic publication was not published at its scheduled time. WordPress uses WP-Cron for scheduled posts — if cron doesn't run on time, the post stays in future status.

What surprise this prevents

Time-sensitive content going unpublished without anyone noticing — a news article, campaign launch, or scheduled offer staying in draft while the window passes.

Why it matters

Missed schedules break editorial workflows. If your site relies on timed content (news articles, campaigns, time-sensitive offers), a missed schedule means content goes live late or not at all.

Investigate

View entity alerts in Logystera →

Check:

  • payload.post_id — which post was missed?
  • payload.post_type — post, page, or custom type?
  • payload.delay_sec — how late was it? A few seconds is noise; minutes or hours indicates a real cron problem.
  1. Manually publish the missed post if it's time-sensitive: Go to Posts, find the post in Scheduled status, click Edit, and publish immediately.

  2. Check WP-Cron is running. On low-traffic sites, WP-Cron only fires when someone visits the site. If no one visited at the scheduled time, cron didn't run.

Fix: Add a real cron job: bash # crontab -e * * * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron > /dev/null

  1. Check for DISABLE_WP_CRON. If define('DISABLE_WP_CRON', true) is in wp-config.php, WP-Cron is disabled. You need an external cron job.

  2. Use WP-CLI to manually run cron: bash wp cron run --due-now

  3. Install a cron management plugin (e.g., WP Crontrol) to see scheduled events and run them manually.

When to safely ignore

If payload.delay_sec is under 60, the delay is within normal WP-Cron variance (cron runs when a visitor loads a page, not on a strict timer). A few seconds of delay is expected behavior, not a failure.

If the site has low traffic and no external cron configured, occasional small delays are normal. Consider adding a real cron job only if delays regularly exceed 5 minutes.

Signal reference

{
  "event_type": "wp.cron",
  "payload": {
    "type": "missed_schedule",
    "post_id": 1234,
    "post_type": "post",
    "delay_sec": 420
  }
}