Retry Configuration

HookFlow provides robust retry capabilities to ensure reliable webhook delivery. This guide explains how to configure retry settings for your webhook destinations.

Why Webhook Retries Matter

Webhook delivery can fail for various reasons:

  • Temporary Network Issues: Internet connectivity problems between HookFlow and your server
  • Server Downtime: Your destination server is temporarily unavailable
  • Rate Limiting: Your server is rejecting requests due to high volume
  • Timeout Issues: Your server takes too long to process the webhook
  • Application Errors: Your application returns an error response

Without proper retry logic, these temporary issues could result in permanently lost webhooks. HookFlow's retry system ensures that transient failures don't lead to data loss.

How Retries Work in HookFlow

When a webhook delivery fails (receives a non-2xx HTTP response code or times out), HookFlow will:

  1. Mark the delivery attempt as failed
  2. Log the error details for troubleshooting
  3. Schedule a retry based on your retry configuration
  4. Continue retrying until either:
    • The webhook is successfully delivered (2xx response)
    • The maximum number of retry attempts is reached
    • The maximum retry period is exceeded

Webhook Received by HookFlow

Processing (Filtering & Transformation)

Delivery Attempt

Success (2xx)

Failure (non-2xx)

Marked as Delivered

Schedule Retry

Retry Configuration Options

HookFlow provides several configuration options to customize the retry behavior for each destination:

Retry Attempts

The maximum number of retry attempts after the initial delivery fails.

Default: 5 attempts

Range: 0-25 attempts

Retry Interval

The initial waiting period before the first retry attempt.

Default: 30 seconds

Range: 5 seconds - 1 hour

Backoff Factor

The multiplier applied to the retry interval for each subsequent retry.

Default: 2.0 (exponential backoff)

Range: 1.0 (linear) - 3.0

Maximum Retry Period

The maximum time period during which retries will be attempted.

Default: 24 hours

Range: 1 hour - 72 hours

Retry Status Codes

The HTTP status codes that should trigger a retry.

Default: All non-2xx status codes

Customizable: Select specific status codes

Retry Timeout

The maximum time to wait for a response before considering the attempt failed.

Default: 10 seconds

Range: 1-60 seconds

Configuring Retry Settings

You can configure retry settings when creating or editing a destination:

  1. Navigate to the source that contains the destination
  2. Click on the destination to expand its settings
  3. Scroll to the "Retry Settings" section
  4. Configure the retry parameters according to your needs
  5. Save your changes

Pro Tip: For critical webhooks, configure more aggressive retry settings. For less important webhooks, you might use fewer retries to reduce system load.

Understanding Exponential Backoff

HookFlow uses exponential backoff by default, which means each retry attempt waits longer than the previous one. This approach helps prevent overwhelming your server during outages while still ensuring timely delivery.

Example Retry Schedule

With default settings (30-second initial interval, 2.0 backoff factor):

AttemptWait TimeTime Since Failure
Initial Attempt-0 seconds
Retry #130 seconds30 seconds
Retry #21 minute1 minute, 30 seconds
Retry #32 minutes3 minutes, 30 seconds
Retry #44 minutes7 minutes, 30 seconds
Retry #58 minutes15 minutes, 30 seconds

Monitoring Retry Status

You can monitor the status of webhook retries in the HookFlow dashboard:

  1. From your dashboard, navigate to the "Webhooks" section
  2. Click on a webhook to view its details
  3. In the webhook details, you'll see the delivery status for each destination
  4. For failed deliveries, you can view:
    • Number of retry attempts made
    • Time of next scheduled retry
    • Error details from each attempt
    • Response status codes and bodies

Note: If a webhook has exhausted all retry attempts and still failed to deliver, it will be marked as "Failed" in the dashboard. You can manually trigger additional retries from the webhook details page if needed.

Manual Retries

In addition to automatic retries, HookFlow allows you to manually retry failed webhooks:

  1. Navigate to the webhook details page for the failed webhook
  2. Find the destination with the failed delivery
  3. Click the "Retry Now" button to immediately attempt redelivery
  4. Optionally, you can select "Reset Retry Count" to restart the automatic retry sequence

Recommended Retry Strategies

Here are some recommended retry configurations for different scenarios:

Critical Business Webhooks

For payment confirmations, order fulfillment, or other business-critical webhooks.

  • Retry Attempts: 15-20
  • Retry Interval: 15 seconds
  • Backoff Factor: 1.5
  • Maximum Retry Period: 48-72 hours

Standard Webhooks

For most webhook types with normal priority.

  • Retry Attempts: 5-8
  • Retry Interval: 30 seconds
  • Backoff Factor: 2.0
  • Maximum Retry Period: 24 hours

Low-Priority Notifications

For informational updates or analytics events.

  • Retry Attempts: 3-5
  • Retry Interval: 60 seconds
  • Backoff Factor: 2.0
  • Maximum Retry Period: 6-12 hours

Best Practices

Follow these best practices for webhook retry configuration:

  • Use idempotent endpoints: Ensure your webhook endpoints can handle the same webhook multiple times without side effects
  • Implement proper error handling: Return appropriate HTTP status codes from your endpoints to help HookFlow determine when to retry
  • Monitor retry metrics: Keep an eye on which webhooks are being retried frequently to identify potential issues with your endpoints
  • Set up alerts: Configure notifications for webhooks that have failed all retry attempts
  • Customize by importance: Use more aggressive retry settings for business-critical webhooks

Next Steps

Now that you understand how to configure webhook retries, explore these related topics: