Retries
Guardhouse retries webhook deliveries according to the retry settings configured on the webhook subscription by an admin.
The .NET SDK has its own HTTP retry settings for SDK outbound API calls. Those SDK settings do not control Guardhouse webhook delivery retries.
Success Criteria
A delivery is successful when your endpoint returns a 2xx status code.
Any non-2xx response or transport error is treated as a failed delivery and can be retried.
Retry Settings
Retry behavior is configured when an admin creates or updates a webhook subscription.
| Setting | Description |
|---|---|
| Number of retries | How many retry attempts Guardhouse can make after a failed delivery. Allowed range: 1 to 60. |
| Retry interval | Fixed delay between retry attempts, in seconds. Allowed range: 1 to 30. |
The configured values are saved on the webhook subscription as RetriesCount and RetryIntervalSeconds.
Delivery Behavior
For each delivery, Guardhouse:
- Builds the webhook JSON payload.
- Creates a delivery log snapshot with the target URL, event type, delivery mode, retry count, and retry interval.
- Sends an HTTP
POSTrequest to the webhook target URL. - Retries when the request throws an exception or the response status code is not successful.
- Waits
RetryIntervalSecondsbetween retry attempts. - Marks the delivery as
Successwhen the final response is2xx; otherwise marks it asFailed.
Retries use a fixed interval. They do not use exponential backoff.
The signature timestamp is generated when Guardhouse prepares the delivery payload. Retry attempts for the same delivery use that same payload and signature.
Receiver Guidance
Webhook receivers should be idempotent because the same event can be delivered more than once.
Recommended behavior:
- Return
2xxonly after the event is accepted. - Process repeated deliveries idempotently.
- Avoid long-running work in the request path.
- Return a non-
2xxresponse for temporary failures that should be retried. - Do not rely on webhook delivery as the only source of critical state.
Delivery Logs
Guardhouse stores delivery log data for inspection, including:
- delivery status
- response status code
- execution duration
- response body
- event type
- delivery mode
- target URL
- request body
- retry count
- retry interval