Skip to main content
Every bot reply now survives transient channel errors — 5xx responses, 429 rate limits, and network blips are automatically retried with bounded exponential backoff before parking in a Dead Letter Queue on permanent failure. The user sends a bot reply; transient channel errors retry with backoff before a permanent failure lands in the dead-letter queue.

Quick Start

1

Zero Configuration (Transient Retry)

All six adapters now retry on transient failures by default — no config needed:
Slack, Discord, WhatsApp, Email, Linear, and AgentMail behave identically — transient 5xx and 429 errors are retried automatically.
2

Enable Dead Letter Queue

Add a dlq_path so permanently-failed replies are parked for later replay:
3

Tune Backoff Parameters

Fine-tune retry behaviour per channel:

How It Works

The mixin (OutboundResilienceMixin) wraps each adapter’s raw send with deliver_outbound(). State is initialised lazily from self.config.outbound_resilience — existing adapter constructors need no changes.

Channel Support

All six channels now share the same durable delivery path:
WhatsApp previously swallowed permanent send errors silently. This was fixed: permanent failures now propagate, matching every other channel.

What Gets Retried


Configuration Options


Best Practices

Without dlq_path, failed replies after max attempts are re-raised and logged but not recoverable. A DLQ lets you replay them after fixing an outage.
The mixin reads the Retry-After response header and waits exactly that long before the next attempt, so your bot stays within platform rate limits without sleeping longer than necessary.
Set outbound_resilience.enabled = False in a channel’s config to disable durable delivery for that channel only — useful for fire-and-forget channels where retries would send duplicates.
Parked entries are permanent failures. Set up alerts on DLQ growth to detect channels that are consistently unreachable (e.g. bots kicked from a workspace).

Dead-Target Registry

Short-circuit known-dead channels before sending

Bot Channels

Overview of all supported messaging channels

Delivery Config

Full delivery configuration reference

Inbound DLQ

Dead-letter queue for inbound messages