<PackageReference Include="Polly" Version="7.2.3" />

RateLimitRejectedException

Exception thrown when a delegate executed through a IRateLimitPolicy is rate-limited.
using System; using System.Runtime.Serialization; namespace Polly.RateLimit { [Serializable] public class RateLimitRejectedException : ExecutionRejectedException { public TimeSpan RetryAfter { get; set; } public RateLimitRejectedException(TimeSpan retryAfter) : this(retryAfter, DefaultMessage(retryAfter)) { } public RateLimitRejectedException(TimeSpan retryAfter, Exception innerException) : base(DefaultMessage(retryAfter), innerException) { SetRetryAfter(retryAfter); } public RateLimitRejectedException(TimeSpan retryAfter, string message) : base(message) { SetRetryAfter(retryAfter); } public RateLimitRejectedException(TimeSpan retryAfter, string message, Exception innerException) : base(message, innerException) { SetRetryAfter(retryAfter); } private void SetRetryAfter(TimeSpan retryAfter) { if (retryAfter < TimeSpan.Zero) throw new ArgumentOutOfRangeException("retryAfter", retryAfter, "The retryAfter parameter must be a TimeSpan greater than or equal to TimeSpan.Zero."); RetryAfter = retryAfter; } private static string DefaultMessage(TimeSpan retryAfter) { return $"""{retryAfter}"; } protected RateLimitRejectedException(SerializationInfo info, StreamingContext context) : base(info, context) { } } }