Ultimate

X_MAIL_SEND_FAILED

Means

the mail transport refused the message

Typical cause

a rejected recipient, bad credentials, a throttle, a dead socket, or a peer that never completes a reply

Fix

the queue now decides this without you: sendFailed carries the verdict as error.retry, so sendMailJob dead-letters a permanent refusal on the attempt that threw it instead of presenting the same rejected recipient four more times. meta.retryable is the same fact, unchanged, and is still what an operator reads. true → it will be requeued; false → fix what meta.stage names, then x doctor --json. meta.stage is the SendStage union in packages/mail/src/errors.ts: auth → SMTP_URL credentials, tls → openssl s_client -connect <host>:465 for the implicit-TLS certificate, starttls → openssl s_client -starttls smtp -connect <host>:587, recipient → the address, reply → point SMTP_URL at the SMTP port itself, since a proxy or an HTTP port answers like this

Listed under Mail

This page as markdown