Delivery & Retries
Understanding webhook reliability and retry behavior.
How Delivery Works
- Event occurs in Teachfloor
- HTTP POST sent to your endpoint (3 second timeout)
- Response checked
- 2xx status = success, otherwise retry
Successful Delivery
Your endpoint must respond with 2xx status within 3 seconds:
200 OK
(recommended)201 Created
202 Accepted
204 No Content
Retry Mechanism
- Total attempts: 3 (initial + 2 retries)
- Timeout: 3 seconds per attempt
- Backoff: Exponential (10^attempt seconds)
Retry Schedule
Attempt | Wait Time | Total Elapsed |
---|---|---|
Initial | 0s | 0s |
1st retry | 10s | 10s |
2nd retry | 100s | 110s |
When Retries Occur
- Non-2xx status code
- Timeout (>3 seconds)
- Connection failure
Handling Duplicates
Use event.id
to prevent duplicate processing:
const processed = new Set();
function processWebhook(event) {
if (processed.has(event.id)) return;
processed.add(event.id);
// Process event
}
Monitoring
View delivery logs in your Teachfloor dashboard:
- Go to Developers → Webhooks
- Select your endpoint
- Check delivery history