Errors & retries

Retry strategies, the exception classifier, and Skipper's error types.

See Error Handling for how these fit together.

Retry strategies & classification

TypeDescription
FixedRetryStrategy(delay, maxRetries)Constant delay between a fixed number of retries.
ExponentialRetryStrategy(initialDelay, maxRetries, multiplier, maxDelay)Exponentially increasing delay, capped at maxDelay.
PersistentRetryStrategy.of(strategy)Wraps any strategy so the workflow parks instead of failing once retries are exhausted.
ExceptionClassifier / DefaultExceptionClassifierDecides whether a thrown exception is retryable. Extend the default to add your own cases.

Error types

TypeDescription
SkipperErrorBase type for Skipper’s own errors.
RetryableErrorThrow to mark a failure as retryable.
NonRetryableErrorThrow to fail the workflow without retrying.
RetriesExhaustedErrorSurfaced to callers when a PersistentRetryStrategy is exhausted.
ApplicationErrorSerializable wrapper Skipper converts foreign exceptions into for persistence.