Ultimate

X_NOTIFY_DELIVERY_FAILED

Means

a channel did not accept the delivery

Typical cause

a channel's deliver threw. Wrapped rather than rethrown so the dead-letter row carries a stable code and names the channel — a raw provider error names only itself. The ledger row is settled failed first and stays re-claimable, so the job's own retry policy decides whether it goes out again. Rendered through renderThrowable, never ${cause}: a provider rejection is routinely an object whose toString throws

Fix

x jobs list --json for the run, then x jobs show <id> --json — the failing step is deliver:<channel>, and meta.channel names it

Listed under Notifications

This page as markdown