Delivery Pipeline Resilience
Courier employs a robust retry mechanism to ensure reliable notification/webhook delivery and accurate status tracking, even in the event of temporary downstream failures or network issues.
Notification Send Retries
Retry Conditions
Courier will attempt to resend a notification under the following circumstances:
- No response from the integration (e.g., network connection lost)
- Integration response indicates a temporary issue (e.g., server overload, rate limit exceeded)
- Uncaught exception in Courier’s pipeline
Retry Strategy
Our retry strategy employs an exponential backoff approach:
- Immediate retry for the first 10 attempts
- 1-hour delay before the 11th attempt
- 2-hour delay before the 12th attempt
- 3-hour delay for attempts 13 through 25
This strategy spans 72 hours (3 days), maximizing the chances of successful delivery.
Delivery Status Check Retries
Retry Conditions
Courier will retry delivery status checks under these conditions:
- No response from the integration (e.g., network connection lost)
- Integration response indicates a temporary issue (e.g., server overload)
- Temporary failure in resolving the delivery status
- Uncaught exception in Courier’s pipeline
Retry Strategy
We employ the same exponential backoff strategy for status checks:
- Immediate retry for the first 10 attempts
- 1-hour delay before the 11th attempt
- 2-hour delay before the 12th attempt
- 3-hour delay for attempts 13 through 25
This approach ensures thorough tracking of delivery statuses over a 72-hour period.
Outbound Webhook Delivery Retries
Retry Conditions
Courier will attempt to retry outbound webhook delivery under the following circumstances:
- Internal Courier errors occur
- Network errors are encountered
- Certain retryable HTTP errors are received
Retry Strategy
Our outbound webhook retry strategy employs an exponential backoff approach:
- Initial retries with increasing delays: 5, 10, 20, 40, 60, 120, 240, 480, 720, 900 seconds
- After the 10th retry, a consistent 15-minute delay is used for subsequent attempts
- Up to 296 retry attempts are made, spanning a maximum of 3 days
Courier Status Page
You can track Courier’s services status here