# `invalid_local_part`: the username breaks the rules its own provider enforces

The part before the @ cannot exist at the provider that would host the mailbox, so the address is rejected before any mailbox probe is spent on it.

- Appears in: `reason`
- Verdict: undeliverable
- Billing: Free. Undeliverable verdicts never cost a credit.

Large mailbox providers publish rules for usernames: Gmail allows letters, digits and dots up to 30 characters, Outlook, Yahoo, iCloud, AOL and Proton each have their own character sets and length limits. An address that violates the rule of the provider behind its domain cannot exist, and probing it would only waste a handshake.

Spaw applies character-set and maximum-length rules only. Minimum lengths are deliberately not enforced, because legacy accounts predate them.

**What to do.** Treat it like a typo in the username. If the address came from a signup form, ask the user to re-enter it; on an imported list, drop it.

```json
{
    "email": "m!a@gmail.com",
    "deliverable": "undeliverable",
    "reason": "invalid_local_part",
    "mx_provider": "google",
    "smtp_checked": false
}
```

Reference: https://spaw.co/docs/reasons/invalid_local_part
