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:
- Mark the delivery attempt as failed
- Log the error details for troubleshooting
- Schedule a retry based on your retry configuration
- 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:
- Navigate to the source that contains the destination
- Click on the destination to expand its settings
- Scroll to the "Retry Settings" section
- Configure the retry parameters according to your needs
- 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):
Attempt | Wait Time | Time Since Failure |
---|---|---|
Initial Attempt | - | 0 seconds |
Retry #1 | 30 seconds | 30 seconds |
Retry #2 | 1 minute | 1 minute, 30 seconds |
Retry #3 | 2 minutes | 3 minutes, 30 seconds |
Retry #4 | 4 minutes | 7 minutes, 30 seconds |
Retry #5 | 8 minutes | 15 minutes, 30 seconds |
Monitoring Retry Status
You can monitor the status of webhook retries in the HookFlow dashboard:
- From your dashboard, navigate to the "Webhooks" section
- Click on a webhook to view its details
- In the webhook details, you'll see the delivery status for each destination
- 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:
- Navigate to the webhook details page for the failed webhook
- Find the destination with the failed delivery
- Click the "Retry Now" button to immediately attempt redelivery
- 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:
- Configuring Destinations - Set up where your webhooks are forwarded
- Transforming Webhooks - Learn how to modify webhook payloads before delivery
- Filtering Webhooks - Set conditions for which webhooks get forwarded