Class TransientErrorRetryException
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
ai.redouble.nucleo.harness.errors.retry.UpstreamRetryException
ai.redouble.nucleo.harness.errors.retry.TransientErrorRetryException
- All Implemented Interfaces:
Serializable
A plain transient provider failure: 5xx errors, connection failures, unparseable
responses. Transparent retry with standard pacing and no throttle feedback - a
fault is not a slow-down request, and cutting the fleet's admission rate over a
stray 500 would be an overreaction. A 529 is deliberately NOT this: overload is a
capacity signal and rides
OverloadRetryException.
Semantically separate from RateLimitRetryException (429) because
provider failover triggers on sustained 5xx only, never on rate limits.
- Since:
- 0.1 (2026-04-07)
- Author:
- Andrey Santrosyan
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionTransientErrorRetryException(String message, String provider, String errorDetails, int httpStatus, int attemptNumber, Throwable cause) -
Method Summary
Modifier and TypeMethodDescriptionintHow many throttle increments this signal feeds the model's admission limiter (TokenBucketRateLimiter.recordBackpressure(int)); zero means the limiter does not hear about it.longUpper edge of the backoff jitter window, in milliseconds, before attempt scaling.longLower edge of the backoff jitter window, in milliseconds, before the dispatcher scales it by the attempt factor.intintCreates new exception with incremented attempt counter.Methods inherited from class UpstreamRetryException
detailsMethods inherited from class Throwable
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
-
Constructor Details
-
TransientErrorRetryException
-
-
Method Details
-
getProvider
-
getErrorDetails
-
getHttpStatus
public int getHttpStatus() -
getAttemptNumber
public int getAttemptNumber() -
baseMinJitterMs
public long baseMinJitterMs()Description copied from class:UpstreamRetryExceptionLower edge of the backoff jitter window, in milliseconds, before the dispatcher scales it by the attempt factor.- Specified by:
baseMinJitterMsin classUpstreamRetryException
-
baseMaxJitterMs
public long baseMaxJitterMs()Description copied from class:UpstreamRetryExceptionUpper edge of the backoff jitter window, in milliseconds, before attempt scaling.- Specified by:
baseMaxJitterMsin classUpstreamRetryException
-
backpressureIncrements
public int backpressureIncrements()Description copied from class:UpstreamRetryExceptionHow many throttle increments this signal feeds the model's admission limiter (TokenBucketRateLimiter.recordBackpressure(int)); zero means the limiter does not hear about it.- Specified by:
backpressureIncrementsin classUpstreamRetryException
-
withIncrementedAttempt
Creates new exception with incremented attempt counter.
-