Skip to main content
Sometimes your webhook endpoint missed events — deployment outage, certificate expiry, a bug that ate valid deliveries. Sly retains the last 30 days of events and lets you replay them.

List past deliveries

Filters:
  • statusdelivered, failed, pending
  • event_type — filter by type (transfer.completed, approval.requested, etc.)
  • since, until — time window
Response:

Replay a single delivery

Re-sends the exact event to the webhook URL, with the same signature and headers. The replayed delivery gets a new X-Sly-Delivery-Id but the same X-Sly-Event-Id — so your idempotency logic on the receiving side works correctly.

Bulk replay

Schedules a replay batch; deliveries go out rate-limited at 10/sec to avoid overwhelming your endpoint.

Replay to a different URL

Useful for testing a new endpoint version against real traffic:
The override URL signature uses the current webhook’s secret, not the staging endpoint’s. Set up matching secrets to verify.

Idempotency matters here

Replayed events carry the original event_id. If your handler is idempotent, replays are safe — a replayed transfer.completed for a transfer you already marked complete will be a no-op. If your handler isn’t idempotent, replay can re-trigger side effects (duplicate emails, duplicate ledger entries). Fix idempotency first; replay second.

Auto-disable on persistent failure

If 10+ consecutive deliveries fail, Sly automatically:
  1. Emits a webhook.failing event to any other active webhooks
  2. Alerts the dashboard
  3. After 1 hour of continued failures, pauses the subscription
Paused subscriptions accumulate events in the replay store. Fix the underlying issue, then bulk-replay to recover: