Retry behavior
Perceive8 makes up to five delivery attempts per webhook event.
Retry schedule
| Attempt | When |
|---|---|
| 1 | Immediately |
| 2 | 1 minute |
| 3 | 5 minutes |
| 4 | 30 minutes |
| 5 | 2 hours |
A delivery is considered successful if your endpoint returns a 2xx status code within 30 seconds. Any non-2xx response or connection timeout triggers a retry.
Best practices
- Respond quickly with
200 OKand process the event asynchronously if you need more time. - Make your handler idempotent — the same event may be delivered more than once.
- Use the
analysis_idto deduplicateanalysis.completedandanalysis.failedevents. - Log signature failures and return
401so the retry schedule still fires for transient errors.
If you need to replay an event, use the webhook logs in the dashboard or re-upload the source audio file.