Skip to main content
Home›Docs›Webhooks›Retry behavior
Webhooks

Retry behavior

Webhook delivery schedule, retry policy, and idempotency best practices.

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 OK and 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_id to deduplicate analysis.completed and analysis.failed events.
  • Log signature failures and return 401 so 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.