Failures and retries#

When an activity fails, Durable can retry it. Each attempt and the final outcome are recorded in the journal. An activity is a unit of side effect in a workflow, such as an HTTP call, a database write or an e-mail. The journal is the append-only record of everything an execution decided and received. Both terms are in the glossary.

Pick the page that matches what you need. To undo the effects of a failed process, see Compensating.

Diagnose a failed activity or workflow#

Diagnose a failed activity or workflow: an activity that stopped retrying too early or never stops, a messenger:failed:retry that runs nothing, an early resume line in the logs, a workflow that ended with WorkflowExecutionFailed.

Stop retrying an exception#

Stop retrying an exception: declare an exception non-retryable, so that an error no later attempt can fix, such as a refused card, is never retried.

Failure events and states#

Failure events and states: the journal events of one activity, the retryState values, how RetryLimit counts attempts, and the kind values of WorkflowExecutionFailed.

Retries over Symfony Messenger#

Retries over Symfony Messenger: which retry settings belong to Durable and which to Messenger, why there is only one retry counter, and the two messages that bypass max_retries.