Skip to main content

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.

SettingDescription
Number of retriesHow many retry attempts Guardhouse can make after a failed delivery. Allowed range: 1 to 60.
Retry intervalFixed 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:

  1. Builds the webhook JSON payload.
  2. Creates a delivery log snapshot with the target URL, event type, delivery mode, retry count, and retry interval.
  3. Sends an HTTP POST request to the webhook target URL.
  4. Retries when the request throws an exception or the response status code is not successful.
  5. Waits RetryIntervalSeconds between retry attempts.
  6. Marks the delivery as Success when the final response is 2xx; otherwise marks it as Failed.

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 2xx only after the event is accepted.
  • Process repeated deliveries idempotently.
  • Avoid long-running work in the request path.
  • Return a non-2xx response 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