Event Grid message delivery and retry
This article describes how Azure Event Grid handles events when delivery isn't acknowledged.
Event Grid provides durable delivery. It delivers each message at least once for each subscription. Events are sent to the registered webhook of each subscription immediately. If a webhook doesn't acknowledge receipt of an event within 60 seconds of the first delivery attempt, Event Grid retries delivery of the event.
Currently, Event Grid sends each event individually to subscribers. The subscriber receives an array with a single event.
Message delivery status
Event Grid uses HTTP response codes to acknowledge receipt of events.
The following HTTP response codes indicate that an event has been delivered successfully to your webhook. Event Grid considers delivery complete.
- 200 OK
- 202 Accepted
The following HTTP response codes indicate that an event delivery attempt failed.
- 400 Bad Request
- 401 Unauthorized
- 404 Not Found
- 408 Request timeout
- 414 URI Too Long
- 429 Too Many Requests
- 500 Internal Server Error
- 503 Service Unavailable
- 504 Gateway Timeout
If Event Grid receives an error that indicates the endpoint is temporarily unavailable or a future request might succeed, it tries again to send the event. If Event Grid receives an error that indicates the delivery will never succeed and a dead-letter endpoint has been configured, it sends the event to the dead-letter endpoint.
Retry intervals and duration
Event Grid uses an exponential backoff retry policy for event delivery. If your webhook doesn't respond or returns a failure code, Event Grid retries delivery on the following schedule:
- 10 seconds
- 30 seconds
- 1 minute
- 5 minutes
- 10 minutes
- 30 minutes
- 1 hour
Event Grid adds a small randomization to all retry intervals. After one hour, event delivery is retried once an hour.
By default, Event Grid expires all events that aren't delivered within 24 hours. You can customize the retry policy when creating an event subscription. You provide the maximum number of delivery attempts (default is 30) and the event time-to-live (default is 1440 minutes).
When Event Grid can't deliver an event, it can send the undelivered event to a storage account. This process is known as dead-lettering. To see undelivered events, you can pull them from the dead-letter location. For more information, see Dead letter and retry policies.
- To view the status of event deliveries, see Monitor Event Grid message delivery.
- To customize event delivery options, see Manage Event Grid delivery settings.
- For an introduction to Event Grid, see About Event Grid.
- To quickly get started using Event Grid, see Create and route custom events with Azure Event Grid.