NonRetryable

interface NonRetryable

Marker interface indicating that an operation should NOT be retried on failure.

Can be applied to exceptions, commands, actions, or any operation that fails deterministically and will not succeed on retry.

Common use cases:

  • Validation errors

  • Business rule violations

  • Invalid input parameters

  • Resource not found (404 errors)

  • Authentication failures (401 errors)

  • Authorization failures (403 errors)

Example usage:

import com.embabel.agent.core.NonRetryable

class ValidationException(message: String)
: RuntimeException(message), NonRetryable

See also

Inheritors