Automatic Retries
AutoSend automatically retries webhook deliveries that fail due to network errors, timeouts, or non-2xx status codes from your endpoint.Retry Schedule
If AutoSend does not receive a 200-299 response from your webhook endpoint, we will retry the webhook delivery based on the following schedule:| Attempt | Delay After Previous Failure |
|---|---|
| 1st Retry | 1 minute |
| 2nd Retry | 5 minutes |
| 3rd Retry | 15 minutes |
Example Timeline
When Retries Occur
Retry Triggers
AutoSend will retry webhook deliveries when:- Non-2xx status codes are returned (400, 401, 403, 404, 500, 502, 503, 504, etc.)
- Network errors occur (connection refused, DNS resolution failure, etc.)
- Timeouts happen (no response within 10 seconds)
- SSL/TLS errors are encountered
No Retry for Success
If your endpoint returns any 2xx status code (200-299), the delivery is marked as successful and no retries will occur.After All Retries Fail
After the conclusion of all retry attempts (initial + 3 retries), if the webhook still hasn’t been delivered successfully, the delivery will be marked as failed in the system. Once a delivery is marked as failed after exhausting all retries, AutoSend will not automatically retry it again.Monitoring Your Webhook
Check Webhook Status
Monitor your webhooks:1
Navigate to Webhooks from the AutoSend sidebar
2
View your webhooks with their current status
- Enabled (green) - Webhook is active
- Disabled (gray) - Webhook is inactive
Track Webhook Health
The webhook model tracks important metrics:failureCount: Number of consecutive failureslastSuccessAt: Timestamp of last successful deliverylastFailedAt: Timestamp of last failed deliveryisActive: Whether the webhook is enabled
Implement Your Own Monitoring
Set up your own monitoring for webhook health:Nodejs
Best Practices
Return 2xx for Successful Processing
Return 2xx for Successful Processing
Always return a 2xx status code when your endpoint successfully receives and processes a webhook:
Nodejs
Differentiate Between Temporary and Permanent Errors
Differentiate Between Temporary and Permanent Errors
Return appropriate status codes based on the type of error:
Nodejs
Handle Duplicate Deliveries
Handle Duplicate Deliveries
Since webhooks can be retried, implement idempotency to prevent duplicate processing:
Nodejs
Log All Attempts
Log All Attempts
Keep detailed logs of all webhook delivery attempts for debugging:
Nodejs
Respond Quickly
Respond Quickly
Your endpoint should respond within 10 seconds. Process webhooks asynchronously:
Nodejs
Test Retry Behavior
Test Retry Behavior
Test how your endpoint handles retries:
Nodejs
Troubleshooting
High Failure Rate
High Failure Rate
Symptoms: Webhooks failing frequentlyPossible Causes:
- Endpoint is down or unreachable
- Endpoint is timing out (>10 seconds)
- Endpoint is returning non-2xx status codes
- SSL/TLS certificate issues
- Test your endpoint manually:
- Check your server logs for error messages
- Verify SSL certificate:
- Check response time:
- Review your code for errors in webhook processing logic
Signature Verification Failures
Signature Verification Failures
Symptoms: All webhooks returning 401Possible Causes:
- Using wrong webhook secret
- Incorrect signature verification logic
- Body parsing issues
Timeout Issues
Timeout Issues
Symptoms: Webhooks timing outPossible Causes:
- Synchronous processing taking too long
- Database queries are slow
- External API calls are slow
- Use background job queues:
- Optimize database queries
- Add database indexes
- Cache frequently accessed data