Replay failed runs in bulk

Recover from an outage in one go. Filter a hook's run log, and replay every matching run with its original payload, up to 5,000 runs in one batch.
The problem with failed runs
When an external service your hook calls was down over a weekend, or a bug slipped into your code, dozens of runs could fail. Shopify won't send those webhooks again, so the only way to recover the events was to replay the failed runs one by one.
How it works now
Wait for the service to come back or fix the bug, then open the hook's Logs tab:
- Filter the runs you need, for example the failed runs in a time window, by status, delivery source, resource ID and date range
- Review how many runs will be replayed, and how many will be skipped and why, before you confirm
- Follow the progress in a banner with a running tally of succeeded, failed and retrying runs. The batch keeps running on our servers even if you close the app
- Cancel at any time: runs already executing finish, and the rest are dropped
Replays use your hook's current code, so your fix applies to every replayed run. Each replay is a new run marked Replayed, and the original run stays unchanged. Runs are sent a few at a time, so a large batch never slows down your live events.
Replaying a single run works as before, with the Replay run button on any finished run.
Replay safely
A replay is a real execution. Everything the hook does runs again, including changes in your store, calls to external APIs and emails. Each replayed run's actions count toward your usage like any other run. Filter tightly, and check what the original runs already did before you replay them.
Plan availability
Replay and bulk replay are included on the Trial and Pro plans. On the Trial, a batch stops when the store reaches its 1,200 action limit.