Skip to content

trigger_refresh

Refresh a dashboard now instead of waiting for its schedule. Parameters, the three success shapes, errors, and why it is personal only.

Refreshes a refreshable dashboard immediately, instead of waiting for its schedule. Use it right after a pipeline finishes loading new rows.

Requires a paid plan, and the dashboard must already be refreshable.

The receipt is metadata only: rows refreshed, duration, and whether the data changed. It never returns the dashboard's data.

Behaviour hints for clients: not read-only, not open-world.

Parameters

ParameterTypeRequiredNotes
slugstringyesCanonical slug of the personal dashboard to refresh now.

There is no workspace argument, and passing one does not help: this is the one tool that refuses a workspace target outright.

Returns

Three different outcomes are all successes. Handle each, because two of them mean no refresh ran.

It ran:

Refreshed "revenue-overview": 96 rows in 3120 ms.

When the recomputed data was identical to what was already published, one more sentence is appended: The data cube was unchanged since the last refresh.

It coalesced:

Skipped refreshing "revenue-overview": a refresh ran within the last minute (status: success), so the data is already fresh.

It queued:

Refresh of "revenue-overview" was queued (large dataset); it runs asynchronously. Use get_refresh_status to check progress.

Two of the three successes did not refresh anything

The coalesce and the queued path both return success. A script that treats any success as "the data is now current" is wrong on both: the coalesce means a refresh ran up to a minute ago, and the queued path means one has not finished yet. Poll get_refresh_status rather than trusting the receipt.

Errors

ConditionText
Missing slugslug is required: the canonical slug of the personal dashboard to refresh.
Workspace targetTriggering a refresh on demand isn't available for workspace dashboards yet - it works on personal dashboards only.
The refresh service is unreachableCould not reach the refresh service right now. Please try again in a moment.
An unclassified failuretrigger_refresh failed: <err>
No such dashboardNo personal dashboard found with slug "<slug>".
Free planRefreshing on demand requires a paid plan.
Not refreshableDashboard "<slug>" is not configured for refresh (it has no connected data source).
Changed mid-refreshDashboard "<slug>" changed during refresh. Please retry.
Too many triggersToo many refresh triggers right now. Wait about a minute and try again.
The refresh itself failedRefresh failed for "<slug>": <error>

The unreachable case fails closed: it refuses rather than reporting a refresh it cannot confirm.

Rate limited twice: 20 calls per user per minute at this tool, plus an authoritative per-owner budget on the refresh service, which produces the Too many refresh triggers right now. sentence rather than the generic one. See Rate limits.

Scope

Personal only. This is the single tool of the eighteen that refuses a workspace target. Scheduled refresh of a workspace dashboard works normally, and so does reading its status; only the on-demand trigger is deferred.

Check it worked

Read get_refresh_status and confirm a new run appears at the top of the history with a success status and a row count. That is the only confirmation that holds across all three success shapes, and it is the required step after a queued refresh.

Last updated 2026-08-04