Sheets Refresh, Schedules and Errors
Once a sheet is connected, the Google Sheets tab becomes a status panel. It shows when the last refresh worked, when the next one is due and what happened to recent refreshes.
A failed refresh never replaces your published table. Visitors keep seeing the last published version until a good refresh lands.
The Connected Panel
The panel header shows the range and a Connected badge.
| Field | What it shows |
|---|---|
| Schedule | Manual, Paused, Draft needs review or Scheduled |
| Last successful refresh | The time of the last good refresh, or “Not yet refreshed” |
| Next refresh | When the next scheduled refresh is due, or “When you request it” |
A line below says how refreshes publish. It reads either “Successful refreshes publish automatically. Column changes or conflicting edits stop for review.” or “Refreshes update the saved draft. Review the rows before publishing them.”
Refresh Buttons
- Refresh now runs the refresh right away, while you wait.
- Queue refresh hands it to the background worker: “Refresh queued. Check status after the worker runs.”
- Pause schedule and Resume schedule stop and restart scheduled refreshes. Only administrators see them.
Anyone who can edit the dataset can refresh, queue and cancel. Changing the source, pausing and disconnecting need an administrator.
Save or undo any unsaved edits first. Until you do, the panel says “Save or undo your edits before configuring or refreshing the source.”
Recent Refreshes
Recent refreshes lists the last 10 jobs. Each one has a status and a message, and queued or running jobs have Cancel refresh. Check status reloads the list and Load latest draft pulls the newest draft into the editor. The list checks for updates every 5 seconds while a job is pending.
| Status | Meaning |
|---|---|
| Queued | Waiting for the worker |
| Refreshing | Reading the sheet now |
| Retry scheduled | A temporary problem; it will try again |
| Ready | Done. A draft was saved, or saved and published. |
| Needs attention | Stopped. Read the message and fix the cause. |
| Cancelled | Cancelled by you, a settings change or a pause |
A successful draft-only refresh says “Draft ready. Review it before publishing.” With automatic publishing, it says “Refreshed and published.”
How Schedules Run
Core Tables checks for due refreshes every 5 minutes through WP-Cron. Each check queues up to 5 due sources and runs up to 3 due jobs.
- Hourly means 1 hour after the previous due time, and Daily means 24 hours.
- WP-Cron only runs when someone visits the site, so a quiet site refreshes late. Run real cron on such sites, for example with
wp cron event run --due-now --path=/path/to/wordpressfrom a system cron job. - Scheduled refreshes skip a dataset while someone’s manually edited draft is waiting. The schedule shows Draft needs review until that draft is published or replaced.
- Pausing keeps the schedule and the key but cancels pending jobs: “Schedule paused by an administrator.” Resuming restarts the timer.
- Changing the source settings cancels pending jobs too: “Source settings changed. Queue a new refresh.”
- Unpublishing the dataset switches the source to manual, turns off automatic publishing and cancels its jobs.
Deactivating the plugin clears the 5-minute check. It comes back when you activate Core Tables again.
Retries
Core Tables retries only temporary problems:
- Google couldn’t be reached: “Google could not be reached. Retry the refresh.”
- Google was busy or the read quota ran out: “Google is temporarily unavailable or its read quota was reached. The refresh will retry.”
- Google sent a reply that couldn’t be read
The wait before each retry doubles, starting at a minute or two, with a few random seconds added. A job gets 3 attempts in total, counting the first one. After that it stops with “Refresh was interrupted repeatedly. Retry manually.”
Errors That Need You
These stop the job with Needs attention. Nothing retries until you fix the cause.
| Message | What to do |
|---|---|
| “Google denied access. Enable the Sheets API and share the spreadsheet with the service account as a viewer.” | Turn on the Sheets API for the key’s project and share the sheet with the service account email. |
| “Spreadsheet or range not found. Check the ID, tab name, range, and sharing.” | Check the spreadsheet ID, the tab name and the range. Renamed tabs break the range. |
| “Source headings changed. Preview and map the source again.” | Open Connect Google Sheets, select Preview source and map the columns again. |
| “Dataset columns changed. Preview and map the source again.” | You added, removed or changed dataset columns. Preview and map again. |
| “Dataset changed while refresh was queued. Review it before retrying.” | Someone saved the dataset after the job was queued. Review the draft, then refresh again. |
| “The Sheets credential cannot be decrypted. Reconnect it using the original site key or a new credential.” | The site’s AUTH_KEY changed. Paste the JSON key again. |
| A type error such as “Use a real date in YYYY-MM-DD format.” | A cell doesn’t match its column type. Fix the cell in the sheet, or change the column type. |
An empty range, a range with no data rows or a response over 16 MB also stops the job. The error messages never include keys, tokens or your cell values.
Connection setup is covered in Connect a Google Sheet. Problems outside Sheets are in Troubleshooting.
For a step-by-step walkthrough, see How to Keep a WordPress Table in Sync with Google Sheets.