Skip to main content

Retry Policy

Failed webhook deliveries are automatically retried with exponential backoff.

Retry Schedule​

AttemptDelay
1Immediate
21 minute
35 minutes
430 minutes
52 hours
68 hours
716 hours

After 7 attempts, the delivery is marked as failed.

What Triggers a Retry​

  • HTTP 5xx response
  • Connection timeout (10 seconds)
  • Network error

What Doesn't Retry​

  • HTTP 2xx — Success
  • HTTP 4xx — Client error (except 429)
  • HTTP 410 — Endpoint disabled

Auto-Disable​

Endpoints are automatically disabled when:

  • 25 deliveries fail within 24 hours
  • Endpoint returns HTTP 410 Gone

When disabled, you'll receive a notification via email.

Re-enabling an Endpoint​

curl -X POST "https://api.kula.ai/v1/webhooks/{id}/enable" \
-H "Authorization: Bearer your_api_token_here"

Self-Disable with 410​

To permanently stop receiving webhooks, return HTTP 410 Gone:

app.post('/webhooks/kula', (req, res) => {
// Return 410 to stop receiving webhooks
res.status(410).send('Gone');
});

Delivery Guarantees​

Webhooks provide at-least-once delivery. Use the event_id to deduplicate events in case of retries.