HTTP transient fault handling for xConnect clients

Version: 10.4

In cloud deployment environments, connections between xConnect clients and the xConnect Web Host can drop periodically. Starting with Sitecore 10.3, xConnect implements a fault handling strategy that detects such HTTP transient faults, and automatically retries sending the requests.

HTTP transient fault handling is enabled by default for Sitecore xConnect clients provided out-of-the-box. The default retryer configuration uses an exponential backoff strategy.

This topic contains information to help configure HTTP transient fault handling, or implement a strategy in a custom application that uses the xConnect Client API.

Default transient error status codes

By default, the xConnect HTTP transient error detection strategy defines the following error status codes as transient faults:

  • 408 Request Timeout

  • 429 Too Many Requests

  • 502 Bad Gateway

  • 503 Service Unavailable

  • 504 Gateway Timeout

When a call to the xConnect Client API returns any of the error status codes defined as a transient error code, the retry strategy attempts to send the request again.

You can change default set of transient error status codes to meet specific requirements.

Retry strategies

The HTTP transient fault handling for xConnect supports the following retry strategies:

Retry strategy

Description

ExponentialRetry

Specifies parameters used to calculate the exponential wait time between reach retry.

Sitecore xConnect use this strategy by default.

Fixed Interval

Specifies a number of retry attempts, and a default, fixed time interval between each retry.

Incremental

Specifies a number of retry attempts, and an incremental time interval between each retry.

Custom interval

Specifies custom interval wait time between each retry.

Note

Only the default exponential retry strategy is available out-of-the box. For any other retry strategies, you have the option to implement your own retryer using the IRetryerFactory.

Do you have some feedback for us?

If you have suggestions for improving this article,