Skip to main content
If your endpoint doesn’t return a successful response, StoreKit will retry the webhook multiple times with exponential backoff.

What Counts as a Failure?

A webhook delivery is considered failed if:
  • Your endpoint returns a non-2xx status code
  • Your endpoint doesn’t respond within 15 seconds
  • The connection to your endpoint fails

Retry Schedule

Failed webhooks are retried with exponential backoff over approximately 3 days:
AttemptDelay After Previous
1Immediate
25 seconds
35 minutes
430 minutes
52 hours
65 hours
710 hours
824 hours
After all retry attempts are exhausted, the webhook is marked as failed.

Endpoint Disabling

If all delivery attempts to a specific endpoint fail for a period of 5 consecutive days, the endpoint will be automatically disabled to prevent further failed deliveries. To re-enable a disabled endpoint:
  1. Go to your StoreKit Dashboard
  2. Navigate to Settings > Webhooks
  3. Find the disabled endpoint
  4. Click Enable Endpoint

Manual Retries

You can manually retry failed webhooks from the dashboard:
  1. Go to your webhook endpoint details
  2. Find the failed message in the logs
  3. Click Retry to resend

Recovering from Outages

If your service experiences downtime, you can recover missed webhooks:
  1. Go to your endpoint in the dashboard
  2. Click Options > Recover Failed Messages
  3. Select a time window to replay
Design your webhook handler to be idempotent so that receiving the same webhook multiple times doesn’t cause issues.