Skip to main content

Retry Policy

urelay automatically retries failed webhook deliveries to ensure your application receives every event.

What counts as a failure

A webhook delivery is considered failed if:

  • Your endpoint returns a non-2xx HTTP status code (e.g., 500, 503)
  • The connection times out (10 second timeout)
  • DNS resolution fails
  • The connection is refused

A 2xx response (200, 201, 202, 204) is considered successful, regardless of the response body.

Retry schedule

When a delivery fails, urelay retries with increasing delays:

AttemptDelay after previous
1st retry30 seconds
2nd retry2 minutes
3rd retry10 minutes

After 3 failed retries (4 total attempts), the delivery is marked as permanently failed.

Monitoring deliveries

You can view webhook delivery history in the urelay dashboard:

  1. Go to Webhooks > Delivery History
  2. See status, response code, latency, and retry count for each delivery
  3. Filter by webhook endpoint, event type, or status

Troubleshooting

Common failure causes

  • Endpoint not reachable: Ensure your URL is publicly accessible and not behind a firewall
  • Slow processing: Return 200 immediately and process the payload asynchronously. The 10-second timeout is strict.
  • SSL errors: Ensure your endpoint has a valid SSL certificate if using HTTPS

Testing webhooks

Use the API sandbox in the dashboard to send test events to your webhook endpoint without triggering real messages.

Idempotency

Your webhook handler should be idempotent -- processing the same event twice should produce the same result. Use the message.id or message.guid fields to deduplicate.