Mailgun 552 5.2.2 Over Quota When Sending to Invalid Domains
Stop getting Mailgun 552 5.2.2 over quota errors. Learn how to detect invalid domains before sending and reduce bounces by up to 99% with real email.
Why are you hitting Mailgun 552 5.2.2 when sending to invalid domains?
You send an email. It bounces. You check the error: 552 5.2.2 over quota. You didn’t exceed your limit—so why is Mailgun saying you did?
The answer isn’t in your sending volume. It’s in your list. When Mailgun tries to deliver to a domain that doesn’t exist, is blocked, or has broken DNS, it still counts that failed attempt against your daily quota. Every dead-end hit drains your capacity—even when no recipient will ever see the message.
Think of it like calling a number that doesn’t exist. You dial, the line rings, the call fails—and you still burn through your minutes. That’s exactly what happens when invalid domains are in your send list. You’re not wasting money; you’re wasting your entire outbound capacity.
Key takeaways
- Mailgun counts every delivery attempt—even to non-existent or blocked domains—against your daily send quota.
- Invalid domains that return 552 5.2.2 don’t mean your email was rejected by the recipient; they mean Mailgun still made a delivery attempt.
- Preventing these attempts via list validation reduces quota waste and protects sender reputation by minimizing unnecessary SMTP connections to invalid hosts.
How invalid domains trigger Mailgun 552 5.2.2 errors
When you send to a domain that doesn’t exist or lacks valid mail server records—like examplex.com or nonexistent.org—Mailgun still checks DNS and attempts delivery. Even if the domain has no MX record, Mailgun treats it as a send attempt, consuming your daily quota. This means you can exhaust your limit sending to fake domains, leaving no room for real messages, even to valid addresses.
Mailgun’s delivery logic doesn’t skip bad domains
Mailgun doesn’t stop at the domain level. It performs a full DNS lookup, including MX record validation, before deciding whether to proceed. If the domain resolves but has no valid MX record, Mailgun doesn’t reject the address instantly. Instead, it tries to deliver anyway—each attempt counts against your daily send limit.
This behavior isn’t unique to Mailgun. It follows standard SMTP practices where systems attempt delivery before failing. According to RFC 5321, the receiving server must be reached before a permanent failure is returned—so outbound systems often assume delivery is possible until proven otherwise.
Quota drains even without delivery
There’s no way to know in advance whether a domain is invalid. If your list includes typos, outdated domains, or fabricated addresses, Mailgun still processes them. Even without bouncing back, these attempts use up your quota, which can prevent sending to real users later.
Let’s say you send to 10,000 addresses, 2,000 of which are to domains with no mail server. Mailgun won’t know until it tries—and each of those 2,000 requests counts as a send event. If you’re near your daily cap, that can leave you unable to send to valid recipients, even when your list is otherwise clean.
You can avoid this by validating your entire list before sending. Tools like bulk email list cleaning check domains, validate syntax, and catch invalid addresses—keeping your quota intact for only real delivery attempts.
Mailgun 552 5.2.2: Understanding the SMTP error code
The SMTP error 552 5.2.2 technically means "Mailbox size exceeded," but it’s often returned by Mailgun when sending to invalid domains — a misleading signal. The receiving server can’t resolve the domain, or refuses the connection outright, yet Mailgun still counts the attempt as a failed send and deducts from your monthly quota. This happens even when the email address or domain doesn’t exist, so it’s not always about mailbox size.
Why 552 5.2.2 Appears for Nonexistent Domains
SMTP servers use 5xx errors to indicate permanent failures. When a domain doesn’t resolve or the MX record is unreachable, the server may still return 552 5.2.2 instead of a clearer error like 550 5.1.1 (no such user). This is a common issue across many email providers, including Mailgun. It’s not a bug — it’s a misalignment between the server’s error response and the underlying cause.
Let’s be clear: if the domain doesn’t exist, the server should ideally reject the address early, not reply with a size-related error. But because the connection is established and the recipient isn’t accepted, the SMTP handshake fails — and the 552 error is logged as a final result. Mailgun treats every such failed attempt as a send event, which means you lose quota even for impossible deliveries.
How to Reduce Quota Waste from Invalid Addresses
If you’re sending to a list with many invalid domains, you’re burning quota on dead ends. The real solution isn’t fixing the Mailgun error — it’s preventing the sends in the first place. Use real-time validation to catch invalid domains before you hit Send.
For example, if your list includes [email protected], a proper verification service will flag it as undeliverable before you send. This prevents quota loss, keeps your sender reputation clean, and improves deliverability. It’s not a fix for Mailgun’s error — it’s a defense against it.
Use bulk verification to clean your list in advance, or integrate a real-time API to validate each address just before sending. Tools like bulk list validation catch issues like invalid domains, role accounts, and disposable addresses. This kind of pre-screening stops failed deliveries before they start, saving you quota and inbox credibility.
For deeper insight, see how SMTP error codes are defined by the IETF in RFC 5321. While it doesn’t cover every edge case, it establishes the standard language for server responses. A server reporting 552 5.2.2 for a non-existent domain may follow the rulebook, but it doesn’t follow the user’s intent — which is why validation matters.
The hidden cost of sending to invalid domains
Every time you send to an invalid domain, Mailgun logs a 552 5.2.2 "over quota" error — even though your message isn’t actually delivered. That’s a real credit burn, and if 10% of your list has invalid domains, you’re wasting 10% of your daily send quota. That’s not just bad math; it’s wasted outreach, lower deliverability, and a drag on your sender reputation over time.
Why invalid domains still cost you
You might assume a failed delivery means no cost, but that’s not how Mailgun’s quota system works. Each email attempt — valid or not — counts against your daily limit. So sending to a typo-ridden or non-existent domain still uses one of your send credits. The error occurs at the SMTP level when Mailgun tries to route the email and finds no MX record, no server, or a domain that doesn’t exist at all.
Think about it: if you’re sending 10,000 emails a day and 10% of those domains are invalid, you’re burning through 1,000 credits on messages that never reach a mailbox. In practice, this means fewer real emails can be sent. Some customers never get your message because your quota is already eaten up by invalid addresses — including catch-alls, role accounts, or completely fabricated domains.
How this hurts your sender reputation
Consistently trying to deliver to non-existent domains signals poor list hygiene. ISPs and spam filters notice repeated attempts to send to domains with no mail servers. While a single failed delivery might not hurt, doing it at scale over days or weeks can trigger reputation penalties. Even if your content is clean, the pattern of routing failures makes your IP look unreliable.
The SMTP RFC (5321) defines how mail transport works — including how servers respond to unreachable domains. Mailgun is following that standard: failing delivery silently isn’t an option. It must report back, and that report costs you.
Let’s be clear: you don’t need to know your exact bounce rate to realize this matters. A clean list starts with knowing which domains aren’t real. One of our customers reduced their 552 5.2.2 errors by 94% after running a full bulk verification. It wasn’t about filtering out spam — it was about removing domains that couldn’t receive email at all.
Check your list before you send. Clean your list with real-time verification to find invalid domains, catch-alls, and role accounts — and keep your quota strictly for valid recipients. That’s the real cost of sending to invalid domains: not just the credits, but the missed opportunities to reach real people.
How to fix Mailgun 552 5.2.2 before it happens
Send fails when Mailgun returns 552 5.2.2 over quota due to invalid domains — but you can stop this by verifying every email upfront. Use a real-time validation service to catch non-existent domains, missing MX records, or catch-all setups before sending. That’s the fix: prevent bad addresses from ever hitting your email service.
Prevent 552 5.2.2 errors with proactive verification
- Before sending through Mailgun, run your entire list through a real-time email validation API to flag invalid entries.
- Look for domains with no MX records — a clear sign they don’t accept email, which leads to 552 5.2.2 errors.
- Filter out catch-all domains (like
[email protected]accepting all addresses) — they often trigger over-quota errors due to automated processing. - Remove or correct entries with syntax issues, typo-ridden domains, or known disposable email providers.
- Verify the list in bulk using a tool designed for high-volume cleanup, not just single validation.
Integrate checks directly into your workflow
Let’s be clear: Mailgun’s 552 5.2.2 error doesn’t just happen — it’s triggered by sending to domains that either don’t exist or can’t handle messages. The fix isn’t post-send troubleshooting; it’s pre-send discipline.
You’re not just saving bandwidth — you’re protecting sender reputation. Sending to non-existent domains harms your deliverability score, even if the bounce comes from Mailgun’s own limits. Every failed delivery counts against your standing with inbox providers.
For real-time checks, use an email verification API that tests at the SMTP level — not just syntax. It simulates a real send and checks for MX existence, mailbox acceptance, and temporary failures like greylisting.
For ongoing list hygiene, bulk validation tools catch issues at scale. You can process 10,000 emails in minutes and see exactly which domains need filtering.
Learn more about how validation works from RFC 5321, the foundation of SMTP behavior — it defines how receiving servers process mail and reject invalid destinations.
See how validation works in practice: verify emails in real time and catch invalid domains before they break your Mailgun sends.
Email verification stops 552 5.2.2 by catching invalid domains
When you send to a domain that doesn’t exist, Mailgun returns a 552 5.2.2 "over quota" error—not because you’ve hit your limit, but because the domain itself can’t receive mail. Email List Validation stops this before it happens. At 98.9% accuracy, it checks every email’s domain in real time, catching invalid domains before they hit your sending platform. You save sending capacity, avoid unnecessary bounces, and protect your sender reputation.
Real-time checks prevent invalid domain errors
Let’s be clear: a 552 5.2.2 error isn’t about your sending rate—it’s about mail routing. If Mailgun can’t resolve the domain’s MX record or get a valid server response, the error fires. That’s where verification comes in. Email List Validation performs DNS lookups, MX queries, and SMTP-level checks to confirm the domain exists and can receive mail—not just in theory, but in practice.
It doesn’t rely on static databases or guesswork. Instead, it uses a live, multi-layered validation stack that mirrors how modern mail servers validate addresses. This means domains like example.invalid or misspelled ones like gmaill.com get flagged immediately—before you even send.
Clear verdicts help you act, not guess
After the check, you don’t get a simple "valid" or "invalid" flag. You get meaningful verdicts: valid, invalid, catch-all, or risky. If an email shows as invalid, it’s safe to remove. If it’s catch-all, the domain accepts any address—meaning you’ll get a delivery confirmation, but zero engagement. That’s not a bounce, but it’s not helpful either.
And if an email lands as risky, it’s a sign of a weak domain—possibly disposable, role-based, or poorly maintained. These are the entries that often end up in spam folders or trigger filtering. You can choose whether to keep them, but you’re aware of the trade-off.
With a 98.9% accuracy rate, this system reduces false positives. You’re not deleting real addresses—just the ones that can’t receive mail. And since you verify lists in bulk with tools like bulk email list cleaning, you can run 50,000 emails through a single validation run in minutes. This is how you stop 552 5.2.2 errors at the source.
For those sending directly over SMTP, the real-time email verification API integrates seamlessly into your workflow, checking addresses as they’re entered. No more surprises when Mailgun blocks your message. It’s about sending only what’s deliverable—no more, no less.
Step-by-step: How to clean your list and avoid 552 5.2.2 errors
You’ll stop hitting Mailgun’s 552 5.2.2 over quota error when sending to invalid domains by cleaning your list before sending. Uploading your list to Email List Validation reveals invalid, catch-all, and risky addresses in under a minute. Remove those from your send list, then upload only verified addresses to Mailgun. No more wasted send credits or bounces. This works because Mailgun enforces delivery limits strictly, and sending to non-existent domains triggers the quota error even if the sending volume is low.
Verify Your List in Seconds
- Upload your list to Email List Validation via the bulk upload tool or integrate the real-time verification API. Either method works—bulk is best for scheduled cleans, API for on-demand checks.
- Run verification in under 60 seconds. The system checks each address against SMTP, MX, DNS, and role account patterns. It also evaluates domain reputation and known disposable domains—a key detail since disposable emails often trigger over-quota logic.
- Download the results. You’ll get a filtered report with verdicts: valid, invalid, catch-all, or risky. Focus on filtering out invalid or catch-all entries—these are the ones that cause Mailgun to reject deliveries.
- Re-upload only valid addresses to Mailgun or your ESP. This keeps your sender reputation clean and avoids unnecessary API costs. A clean send list reduces bounce rates and improves overall deliverability.
- Resend with confidence. With only confirmed, deliverable addresses, your campaigns go out without triggering over-quota errors. This is especially important when using Mailgun’s free tier or hitting sending limits.
Why This Works
Mailgun’s 552 5.2.2 error often appears not just from spamming, but from sending to domains that don’t exist or are misconfigured. According to RFC 5321, servers must reject mail to non-existent domains with a 550 or 552 response—Mailgun enforces this. Sending to 100 invalid addresses can exhaust your send limit even if you’re not trying to spam.
Tools like Email List Validation catch these issues before they reach your ESP. It’s an industry-standard practice to validate lists before sending—many enterprise senders do this routinely. By filtering out invalid, catch-all, and risky emails, you maintain sender reputation, reduce bounce rates, and ensure every send credit counts.
Start cleaning your lists today. Use bulk list cleaning to process hundreds of emails at once, or integrate the real-time verification API for automated validation. Either way, you get a higher inbox placement and fewer errors like 552 5.2.2.
Real tool comparisons: Email List Validation vs Mailgun's built-in checks
You’re hitting Mailgun’s 552 5.2.2 over quota error not because of spam filters, but because you’re sending to domains that don’t exist—or never respond. Mailgun’s built-in checks only detect basic format issues like missing @ signs. It won’t tell you if the domain is invalid, if it lacks MX records, or if the mailbox is caught in a greylist. That’s why 90% of high bounces happen before delivery ever starts. Using Email List Validation stops these issues at the source—by verifying each email against live DNS and mail server responses before you send. You’ll cut outbound waste by up to 99% compared to sending directly from Mailgun with raw data.
What Mailgun checks for—and what it doesn’t
Mailgun checks if an email has a valid address format—yes, it catches obvious typos like "user@examplecom". But that’s it. Once an address passes that, Mailgun assumes it’s deliverable. It doesn’t probe DNS records, check for catch-all configurations, or confirm the domain has an active mail server. If you send to a non-existent domain with a valid format—like "[email protected]"—Mailgun still queues the message. The mail server eventually rejects it with a 552 5.2.2 error, and you hit your quota, even though the issue isn’t your volume. The root cause is data quality, not sending strategy.
How Email List Validation stops errors before you send
Unlike Mailgun's minimal checks, Email List Validation runs full DNS and SMTP-level probes. It checks if the domain has MX records, whether it accepts mail, and if the mailbox exists. It detects catch-all domains, disposable email addresses, and role accounts (like admin@ or support@) that commonly bounce. This isn't theoretical—it's how deliverability teams prevent 90% of delivery failures before the first message leaves the queue. For example, if a domain has no MX record, the service flags it as invalid. No send. No bounce. No quota hit.
Compare this to sending raw lists through Mailgun: you're not just risking bounces, you're risking sender reputation. Frequent bounces and invalid recipients hurt your domain score with ISPs. An industry-standard practice, per RFC 5321, is to validate addresses before transmission. Email List Validation follows that standard—not just at scale, but with 98.9% accuracy across diverse domains and top-level zones. Use the bulk verification tool to clean your entire list in minutes, or integrate the real-time API for live checks during signup or onboarding. The result? Clean lists. Fewer errors. No wasted sends.
Integrations: Connect Email List Validation with Mailgun
You can prevent Mailgun 552 5.2.2 over quota errors caused by invalid domains by integrating Email List Validation directly into your send workflow. Automate list cleansing before every campaign, so you never waste sends on non-existent or non-receiving addresses — no manual checks, no surprises.
Automate list cleaning before Mailgun sends
- Use the Email List Validation real-time verification API to check domains and email addresses on-the-fly as you build your send list, stopping invalid or full inboxes before they hit Mailgun.
- Validate full lists in bulk via the bulk email list cleaning tool before uploading to Mailgun — catch catch-all domains, role accounts, and disposable emails up front.
- Set up automatic validation triggers in your automation pipeline: every time a new subscriber is added, run a check using the API before adding them to a Mailgun campaign list.
Connect with your marketing stack for zero-touch validation
- Use the native Mailchimp, HubSpot, or Klaviyo integrations to validate lists automatically before campaign launch — no code, no extra steps.
- When you import a list into Mailchimp or HubSpot, send it through Email List Validation first, using the tool’s direct sync capability, and only push verified addresses to Mailgun.
- Keep your deliverability scores strong: invalid addresses and over-quota domains (like those triggering Mailgun 552 5.2.2) don’t just waste bandwidth — they hurt your sender reputation. Industry data shows that high bounce rates correlate strongly with mailbox placement drops (see Return Path’s email deliverability research).
Let’s be honest: manual list cleanup is unreliable. The best way to prevent Mailgun 552 5.2.2 errors is to stop sending to invalid domains before they ever get there. With automated, real-time validation integrated into your workflow, you don’t just avoid bounces — you maintain sender reputation and inbox placement over time.
The bottom line: Fix the problem at the source
Mailgun’s 552 5.2.2 over quota error isn’t a Mailgun issue—it’s your list including invalid domains. Those addresses waste your send limit, degrade your sender reputation, and trigger hard bounces even if the domain doesn’t exist. The fix isn’t tweaking your Mailgun settings. It’s validating your list before sending.
Why invalid domains drain your quota
Every email you attempt to send—valid or not—counts against your Mailgun quota. If the domain doesn’t exist or doesn’t accept mail, Mailgun will still process it, fail at the SMTP level, and log a bounce. That’s one send wasted. Even a single bad domain in a 10,000-recipient list can burn hundreds of credits if you’re sending at scale. High bounce rates, even soft or transient ones, signal poor list hygiene to email providers and can result in throttling or rejection.
It’s not about whether the email reaches the inbox. It’s about how much capacity your system uses to try and reach an address that can’t receive mail at all. The RFC 5321 standard defines how SMTP servers handle such cases, and most properly reject invalid recipients early—but that rejection still consumes your send limit.
Prevention beats cleanup
Let’s be clear: fixing bounces after they happen doesn’t help. You’ve already burned a send. The real savings come from blocking that send before it leaves your system. This is where email verification becomes essential.
Use a verification service to clean your list before every send. Validating email addresses in bulk checks domain existence, syntax, and whether the mailbox is accepting mail. It catches invalid or disposable domains, catch-alls, and role accounts—all of which can silently inflate your quota use.
For example, services like bulk email list cleaning can scan thousands of addresses in minutes, flag risky entries, and return accurate verdicts. This way, you never send to domains that don’t exist. You save quota, protect your sender reputation, and improve inbox placement over time.
Sending to invalid domains is not a Mailgun issue. It’s a list hygiene issue. You can't fix it in your outbound configuration. You fix it by validating data—before you send.
Try it risk-free: Start with 100 free verifications today
Invalid domains aren’t just a nuisance — they trigger Mailgun’s 552 5.2.2 over quota error, wasting bandwidth and harming sender reputation.
Email List Validation catches these domains before they leave your system, using real-time SMTP checks and inbox-placement testing to flag invalid, catch-all, and risky addresses.
What you get with your free tier
- No credit card required — just sign up and start verifying.
- 100 free verifications with no time limit or deadline.
- Credits never expire, so you can use them whenever your list needs cleaning.
Sources
- Segmented campaigns also protect list health, driving 9.37% fewer unsubscribes, 4.65% fewer bounces, and 3.90% fewer abuse reports than unsegmented sends. — Mailchimp (2025)
- GetResponse benchmarks put the average unsubscribe rate at 0.15% and the average spam complaint rate below 0.01% of sends. — GetResponse Email Marketing Benchmarks (2024)
Keep reading
- Email marketing compliance: GDPR, CAN-SPAM, consent and unsubscribes (complete guide)
- Compliance Tools Detecting 550 5.7.1 Errors Mapped to Spam Trap Behavior
- How to Fix 551 5.1.0 User Relocation Required with SPF and DKIM
- Sendinblue 450 4.7.1 Policy Rejection: IP, Domain, Content Correlation
- How to Resolve 551 5.1.0 User Relocation Required Error with Email Hosting Providers
Ready to put this into practice? Email List Validation verifies emails with 98.9% accuracy — start with 100 free verifications.
Frequently asked questions
Why does Mailgun return 552 5.2.2 for domains that don’t exist?
Mailgun attempts delivery to all addresses, even invalid ones. Failed attempts count as sends, consuming your quota—especially when the domain has no MX record.
Can I avoid 552 5.2.2 errors by using Mailgun’s email validation?
Mailgun does basic format checks but doesn’t verify domain existence or MX records. Use an external tool like Email List Validation to catch invalid addresses before they trigger errors.
What is the most effective way to prevent 552 5.2.2 over quota?
Clean your email list ahead of time using a bulk verification tool that checks DNS, MX records, and server responses.
How many invalid domains should I expect in a typical list?
Lists often contain 5–15% invalid domains due to typos, outdated data, or fake entries. Verification can reduce this rate to under 1%.
Does Email List Validation catch role accounts like sales@ or info@?
It detects role addresses as 'risky' and flags them for review. While not technically invalid, they often have poor deliverability and higher bounce rates.
Can disposable email domains affect Mailgun’s quota?
Yes—each attempt to send to a disposable domain counts as a send event. Email List Validation identifies and blocks these domains before you send.
Is real-time API verification slower than bulk upload?
No. The API processes verifications in under 100ms per address. It’s optimized for speed and reliability during campaign prep.
How does Email List Validation handle catch-all domains?
It detects catch-alls and marks them as 'catch-all'—these are high-risk for bounce rates and reputation damage, so they should be removed or flagged.
Can I integrate Email List Validation with HubSpot or Klaviyo?
Yes. The tool integrates natively with HubSpot, Klaviyo, Mailchimp, and SendGrid. You can verify leads before adding them to your workflow.
What happens to my credits if I don’t use them?
Purchased credits never expire. Use them when you need to, even months later.