Webhook Retries
Ttoolab retries webhook deliveries when your endpoint does not return a successful response.
Delivery attempts
Section titled “Delivery attempts”| Setting | Value | | :------ | :---- | | Maximum attempts | 5 | | Delivery timeout | 30 seconds | | Auto-pause threshold | 10 consecutive failures |
Retry schedule
Section titled “Retry schedule”After a failed attempt, Ttoolab schedules the next retry with exponential backoff:
| Attempt | Delay before retry | | :------ | :----------------- | | 1 | Immediate | | 2 | 1 minute | | 3 | 5 minutes | | 4 | 15 minutes | | 5 | 1 hour |
After 5 failed attempts, the delivery status is set to failed and no further retries occur for that event.
Expected response
Section titled “Expected response”Your endpoint should:
- Respond within 30 seconds
- Return any 2xx HTTP status code to acknowledge success
- Return non-2xx to trigger a retry
Example successful response:
HTTP/1.1 200 OKContent-Type: application/json
{"received": true}Delivery statuses
Section titled “Delivery statuses”| Status | Meaning |
| :----- | :------ |
| pending | Queued for first delivery |
| retrying | Failed, scheduled for retry |
| success | Delivered successfully |
| failed | All attempts exhausted or webhook disabled |
Auto-pause on repeated failures
Section titled “Auto-pause on repeated failures”If a webhook accumulates 10 consecutive failures across deliveries, Ttoolab automatically disables it (enabled = false). Re-enable it in the dashboard after fixing your endpoint.
Timeouts and network errors
Section titled “Timeouts and network errors”Connection errors, DNS failures, and request timeouts (after 30s) are treated as failures and trigger retries.
Best practices
Section titled “Best practices”- Respond quickly with
200and process the payload asynchronously. - Use idempotency keys (
X-Ttoolab-Event-Id) to handle duplicate deliveries safely. - Monitor your webhook endpoint uptime.
- Review failed deliveries in the Ttoolab dashboard.