Retries & Backoff

Sendword can automatically retry failed executions using configurable backoff strategies.

Global defaults

[defaults.retries]
count = 3
backoff = "exponential"
initial_delay = "2s"
max_delay = "60s"

Per-hook override

[hooks.retries]
count = 5
backoff = "linear"
initial_delay = "1s"
max_delay = "30s"

Backoff strategies

None

Retry immediately with no delay:

backoff = "none"

Linear

Delay increases linearly: delay = initial_delay * attempt_number

backoff = "linear"
initial_delay = "5s"
max_delay = "60s"

Attempt 1: 5s, Attempt 2: 10s, Attempt 3: 15s, ...

Exponential

Delay doubles each attempt: delay = initial_delay * 2^(attempt - 1)

backoff = "exponential"
initial_delay = "2s"
max_delay = "60s"

Attempt 1: 2s, Attempt 2: 4s, Attempt 3: 8s, Attempt 4: 16s, ...

All strategies are capped at max_delay.

Log behavior

Each retry attempt appends to the execution logs with a marker:

--- RETRY ATTEMPT 2 ---

The execution status reflects the final attempt's result.