View Categories

Nothing Is Being Submitted

Symptom: no series on the site is running. Targets pass and nothing happens.

This is almost always the worker — WordPress isn’t executing the background check.


Step 1 — Read Worker Health #

GravityOps → Recurring Submissions → Queue, top of the screen.

Reading Healthy
Requested interval 900 seconds
Registered interval 900 seconds — not missing
Next WordPress event Soon, or slightly overdue
Last heartbeat Within the last 15 minutes
Last registration result No error

Step 2 — Diagnose by Combination #

Registered Heartbeat Diagnosis Fix
900 Recent Worker is fine — the problem is elsewhere Go to A Series Is Not Running
900 Hours or days old Event is scheduled, WordPress is not being invoked Fix cron, below
missing Any The event isn’t registered Check the registration result and your cron configuration
900 Never New install inside its grace period, or WordPress has not been invoked since installing Wait one interval, or trigger a visit

Step 3 — Fix Cron #

Ask your host (or systems team) to invoke WordPress cron every 5 to 15 minutes:

*/10 * * * * cd /path/to/site && php wp-cron.php > /dev/null 2>&1

Then wait one interval and reload Queue. If the heartbeat moves forward, it’s fixed.

Things that don’t prove cron is fine #

Claim Why it proves nothing
wp-cron.php returns 200″ It runs due events. If this plugin’s event isn’t due, nothing about this plugin ran.
“Our other scheduled task works” That task may be daily. A daily cron cannot satisfy a 15-minute interval.
“The event is registered” Registration is a request. The heartbeat is the receipt.
“The site gets plenty of traffic” Traffic normally spawns WP-Cron — unless automatic spawning is disabled.

Step 4 — If the Event Is Missing #

  1. Read Last registration result in worker health; a scheduling API error is reported there.
  2. Look for DISABLE_WP_CRON set with no replacement server cron.
  3. Check for a cron-management plugin that removed or duplicated the event. The plugin repairs stale or duplicate events from earlier versions and records the repair — including the previous timestamp and interval.

Step 5 — Confirm Recovery #

  1. Note the heartbeat.
  2. Wait 15–20 minutes.
  3. Reload.

Moved forward? Fixed. Then watch the Due / overdue card drain over the next few passes.


What Happens to the Missed Occurrences #

Nothing was lost, and nothing will flood in:

  • Each series holds one overdue target.
  • On recovery, it submits that one occurrence — or skips it, if the feed is set to skip — and continues at its next future time.
  • Counts and end dates behave accordingly.

See Missed Runs and Downtime.


If the Worker Is Healthy but Nothing Runs #

Then it isn’t the worker. Check, in order:

Check Where
Is the feed active? GravityOps → Feeds tab
Are the series paused? Queue → Paused filter (the default Current view hides them)
Do any series exist at all? Queue with no filters. No rows means no parent entry ever started one.
Does the feed’s Enable Condition pass? The feed’s settings — if it never passes, no entry starts a series
Is the form trashed, or the parent missing? Both prevent submission

A worker can be perfectly healthy with nothing to do.


Prevention #

  • Monitor the heartbeat, not the event.
  • Keep a real server cron rather than relying on visitor traffic.
  • Set an Admin Email — worker-unhealthy and worker-recovered alerts go there, so you hear about this before your schedules do.