<PackageReference Include="Polly.Core" Version="8.5.2" />

BrokenCircuitException

Exception thrown when a circuit is broken.
using Polly.Utils; using System; using System.Runtime.CompilerServices; using System.Runtime.Serialization; namespace Polly.CircuitBreaker { [Serializable] [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public class BrokenCircuitException : ExecutionRejectedException { internal const string DefaultMessage = "The circuit is now open and is not allowing calls."; public TimeSpan? RetryAfter { get; } public BrokenCircuitException() : base("The circuit is now open and is not allowing calls.") { } public BrokenCircuitException(TimeSpan retryAfter) : base($"""{retryAfter}""") { RetryAfter = retryAfter; } public BrokenCircuitException(string message) : base(message) { } public BrokenCircuitException(string message, TimeSpan retryAfter) : base(message) { RetryAfter = retryAfter; } public BrokenCircuitException(string message, Exception inner) : base(message, inner) { } public BrokenCircuitException(string message, TimeSpan retryAfter, Exception inner) : base(message, inner) { RetryAfter = retryAfter; } protected BrokenCircuitException(SerializationInfo info, StreamingContext context) : base(info, context) { Guard.NotNull(info, "info"); SerializationInfoEnumerator enumerator = info.GetEnumerator(); SerializationEntry current; do { if (!enumerator.MoveNext()) return; current = enumerator.Current; } while (!string.Equals(current.Name, "RetryAfter", StringComparison.Ordinal)); long ticks = (long)current.Value; RetryAfter = new TimeSpan(ticks); } public override void GetObjectData(SerializationInfo info, StreamingContext context) { Guard.NotNull(info, "info"); if (RetryAfter.HasValue) info.AddValue("RetryAfter", RetryAfter.Value.Ticks); base.GetObjectData(info, context); } } }