SMTPRunbook 0/4 done
550 5.1.1

SMTP Error 550 5.1.1: Recipient address rejected: user unknown

Error✕ Not retryable · fix the payloadNetwork
TL;DR · 10-second read

The mailbox does not exist at the destination domain — a hard bounce. Stop sending to that address and add it to your suppression list; retrying hurts sender reputation.

Identify: does your log match?

What you see · exact log / response
550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient's email address for typos or
550-5.1.1 unnecessary spaces. For more information, go to
550 5.1.1  https://support.google.com/mail/?p=NoSuchUser 41be03b00d2f7-7ea9c6a1b2csi98765432a12.401 - gsmtp
  1. High

    Typo in the address

    gmial.com, missing letters or a trailing space at signup. The domain may exist but the local part does not.

  2. Medium

    Deleted or deactivated account

    Employees leave and corporate mailboxes are removed; old lists contain many such addresses.

  3. Low

    Catch-all disabled after migration

    A domain moved providers and only some aliases were recreated.

Fix

Suppress hard-bounced addresses

✕ Broken · Node.js
for (const user of users) {
  await sendEmail(user.email, digest);
}
✓ Fixed · Node.js
for (const user of users) {
  if (await db.suppression.findUnique({ where: { email: user.email } })) continue;
  try {
    await sendEmail(user.email, digest);
  } catch (err) {
    if (err.responseCode === 550 && /5\.1\.1/.test(err.response)) {
      await db.suppression.create({ data: { email: user.email, reason: 'hard_bounce' } });
    } else throw err;
  }
}

Mailbox providers lower reputation for senders who keep mailing invalid addresses. Nodemailer exposes responseCode and response for SMTP errors.

Verify: reproduce it on purpose

Reproduce locally · swaks
$ swaks --to this-user-does-not-exist-8f3a91@gmail.com --server gmail-smtp-in.l.google.com --port 25 --quit-after RCPT

Run it against a dev environment to trigger 550 5.1.1 on purpose and test your error handler.

Prevent

  • Use double opt-in for signups.
  • Process ESP bounce webhooks and suppress on hard bounce.
  • Keep hard-bounce rate under 2%.

FAQ

Is 550 5.1.1 a hard or soft bounce?

Hard. The 5 class is permanent and x.1.1 means the mailbox does not exist; never retry it.

Can I verify an address exists before sending?

SMTP RCPT TO probing is unreliable and blocked by many providers. Use double opt-in or an email validation API.

Why does 5.1.1 appear for an address that worked yesterday?

The account was deleted or the domain changed providers. Treat it as invalid until the user updates it.

Related errors

Last verified 2026-10-17 · Source: RFC 5321 reply codes + RFC 3463 enhanced status codes (IANA registry) · Official docs ↗ · ~12,100 searches/mo