Clipform

Retry Logic

How Clipform handles failed webhook deliveries.

If your endpoint returns a non-2xx status code or is unreachable, Clipform automatically retries with exponential backoff.

Retry schedule

AttemptDelay after previous
1Immediate
21 minute
35 minutes
430 minutes
52 hours

After 5 failed attempts, the event is marked as failed and no further retries are attempted.

What counts as success

A delivery is considered successful when your endpoint returns any 2xx HTTP status code (200, 201, 202, etc.).

What counts as failure

  • Any non-2xx response (4xx, 5xx)
  • Connection timeout
  • DNS resolution failure
  • TLS handshake failure

Idempotency

Each webhook event has a unique webhook-id header (format: msg_<uuid>). If you receive the same webhook-id more than once, you can safely ignore the duplicate.

Monitoring

You can monitor webhook delivery status in the dashboard:

  1. Go to your form's Webhooks page
  2. View the delivery log showing status, response code, and timing for each attempt
  3. Filter by success/failure to identify issues

Best practices

  • Return 200 quickly - process the payload asynchronously if your logic takes time. Acknowledge receipt immediately and handle the data in a background job.
  • Use idempotency - check the webhook-id to avoid processing the same event twice.
  • Verify signatures - always verify the webhook signature before processing.

On this page