Azure EventGrid moving the Events to Dead-letter queue without retry.
But I am seeing the following reason:
"deadLetterReason": "UndeliverableDueToClientError" "deliveryAttempts": 1 "lastDeliveryOutcome": "Probation" "lastHttpStatusCode": 0
Please help me to understand the dead letter reason attributes.
deliveryAttempts = 1 Why EventGrid is not retying when Destination is put in probation? Can we do any config settings to ask the EventGrid to retry before moving the Events to Dead-letter queue.
lastHttpStatusCode = 0 What's this means?
CodePudding user response:
- The concept of Event Grid dead letter explained as it moves event to the dead letter queue when the destination like storage account is unable to send the Save events that cannot be delivered to storage event in a certain time period or exceeded the number of limits.
- As shown in the below image In Create Event Subscription select Additional features and Enable dead lettering to catch any events that are not delivered successfully to the subscribers . This will send any undelivered events to the specified storage account
lastHttpStatusCode = 0
*As mentioned in the Document The HTTP response code of 0 indicates that the request was cancelled. It can happen because of timeout, abortion on the request. It indicates the request failed to execute within a specified time. Here 0 indicates the no status code was returned by destination. You can also refer the same issue Status code 0 of Http Request.
delivery attempts = 1
- Here delivery attempts 1 indicates the event grid has attempted to deliver the events only once.
Undeliverable due To Client error
It indicates mainly client-side network error in destination.
You can set Dead letter retry policy by following MS Document. As shown in below image set configure retry polices ok and the max delivery attempts must be 1 to 30 and even you can set EVENT SUBSCRIPTION EXPIRATION TIME
Dead letter MS document for reference