Skip to Content
RunsRetrying & re-running

Retrying & re-running

Runs are final — once a run reaches Succeeded, Failed, or Canceled, it never transitions again. To recover from a failure or push more data, start a new run.

What carries forward between runs

Three things persist, which is why re-running is cheap:

  • The extracted data from the source.
  • The staged records ready to load, with their pending-change flags and their Shopify identity once loaded.
  • The mapping version pinned to each resource.

A new run picks up where the data is, not where the previous run stopped. There’s no “resume” button — Graftport just starts processing the phases you ask for, against the current state.

Recovering from a failed load

A load run failed mid-way. Some records loaded successfully, some failed, some never started.

To finish:

  1. Check the failed run item’s errors. If they’re rate-limit or transient, just start a new load run. Only-dirty is on by default, so the new run only touches what didn’t load.
  2. If the errors are payload problems (e.g. invalid SKU format), fix the mapping, run a transform-only pass to restage the affected records, then load.

Recovering from a failed transform

A transform error usually means the mapping crashed on a specific row. The run item logs which row broke and the JSONata error. Fix the mapping in the editor, save, and run transform again — the rows that already transformed successfully will retransform (cheap), and the broken rows will succeed this time.

Recovering from a failed extract

Extract failures are almost always credentials, rate limits, or network. Look at the error on the run item:

  • 401/403 — bad credentials. Update them in the migration’s settings, then start a new extract.
  • 429 — rate-limited; Graftport backs off automatically, but if the source is throttling Graftport specifically, contact the source platform’s support.
  • 5xx — source platform issue. Wait, then start a new extract.

Manual retry

The Retry button on a failed run item starts a new run with the same configuration as the original, scoped only to the failed resource type. Faster than reconfiguring from scratch when you know the original setup was right.

Retry assumes the underlying problem is fixed (creds rotated, mapping patched, rate limit lifted). If you retry without changing anything, expect the same failure.

Canceling a run

Hit Cancel on a running run to stop it after the current batch. Cancel is graceful — Graftport finishes the in-flight call and then marks the run Canceled. Records loaded up to that point keep their Shopify identity and won’t be re-pushed unnecessarily.

Last updated on