What Causes 552 5.2.2 Size Exceedance in AWS SES?

You sent an email through AWS SES. It looked fine. The logs show it passed authentication and routing. Then, suddenly, a 552 5.2.2 size exceedance error appears — no warning, no clarity, just a hard rejection during the SMTP DATA phase.

This isn’t a problem with your SMTP setup or credentials. It’s a message payload that’s too big for the recipient’s mail server to accept. Most providers enforce a 10MB limit, but thresholds vary — some accept less, others allow more, and some block outright. The real challenge? AWS SES doesn’t always tell you exactly why it failed, making root-cause analysis a guessing game.

Key takeaways

  • The 552 5.2.2 error occurs when the message size exceeds the recipient's server limit, typically 10MB, but varies by domain.
  • AWS SES enforces strict size limits during the SMTP DATA phase, after MAIL FROM and RCPT TO — rejection happens before message delivery.
  • SES logs often lack per-recipient size thresholds, requiring manual or tool-assisted analysis of recipient configurations.

How to Locate 552 5.2.2 Errors in AWS SES Logs

You can locate 552 5.2.2 size exceedance errors in AWS SES logs by enabling delivery notifications via CloudWatch or S3, filtering for bounce events with status code 552 and error code 5.2.2, then correlating the message-id and timestamp with your application’s outbound logs. Cross-reference with the full SMTP transaction log to pinpoint the exact failure point during the DATA phase.

Enable AWS SES Logging

  1. Enable Send Raw Email notifications in AWS SES to track sending metrics via Amazon CloudWatch or S3 delivery logs. Without this, you won’t have visibility into delivery status codes like 552 5.2.2.
  2. Configure S3 bucket for delivery receipts or CloudWatch for metric alarms. Both options record the full SMTP transaction, including error codes and message metadata.
  3. Set up filtering in your log system to isolate events with event: 'bounce' and status: '552'—specifically looking for diagnosticCode: '5.2.2' to confirm the size exceedance.

Trace the Error to Its Source

  1. Retrieve the message-id and timestamp from the SES log entry. These are critical for matching with your application’s outbound record. A 552 error usually means the recipient’s server rejected the message during the DATA phase due to size.
  2. Inspect the full SMTP transaction log to confirm the failure occurred during the DATA stage. The 552 5.2.2 code is returned when the server refuses the message after receiving all content, typically because the message exceeds the recipient’s accepted size limit.
  3. Check the size of the message in your outbound record—especially attachments, headers, or embedded content. Messages over 10 MB are common triggers for 5.2.2 errors. Use RFC 5321 (SMTP) as reference for standard delivery behavior, particularly in the DATA command flow.
  4. Correlate with the recipient’s mail server policies. Some providers (e.g., Gmail, Outlook) restrict message size to 25 MB for inbound messages, but individual recipients may enforce lower thresholds.

Once you identify the faulty message, verify the recipient's email is still valid and the message size is within limits. You can test delivery with bulk email verification to find and remove problematic addresses or reduce payload size before sending.

Enable AWS SES LoggingThe 3 steps described in “Enable AWS SES Logging”, in order.1Enable Send Raw Email notifications in AWS SES to track sending metricsvia Amazon CloudWatch or S3 delivery logs. Without this, you won’t havevisibility into delivery status codes like 552 5.2.2.2Configure S3 bucket for delivery receipts or CloudWatch for metricalarms. Both options record the full SMTP transaction, including errorcodes and message metadata.3Set up filtering in your log system to isolate events with event:'bounce' and status: '552'—specifically looking for diagnosticCode:'5.2.2' to confirm the size exceedance.
The 3 steps described in “Enable AWS SES Logging”, in order.
Size limits vary by recipient domain, and 5.2.2 is not a delivery failure from your side—it’s a response from the receiving server. The error only becomes actionable when you can trace it back to a specific message and correct the cause.

Common Root Causes of 552 5.2.2 Errors

552 5.2.2 errors in AWS SES logs usually mean your message exceeds the recipient’s size limit—typically 25MB for most major inboxes. This happens when attachments are too large, embedded content inflates the payload, or templates load external resources after sending. Let’s break down the actual causes you’re likely facing.

Attachments and Embedded Content

  • Large attachments like high-res images, ZIP files, or PDFs frequently trigger size limits. Even a single 20MB PDF can push a message over the edge if the recipient’s mailbox enforces a 25MB cap.
  • Base64-encoded assets (like inline images or CSS) can inflate the message size by 33% compared to binary content. You might not see this until delivery, since the encoding adds overhead not obvious in your template.
  • Templates that pull in remote images, stylesheets, or scripts via HTTPS after sending can cause issues—these don’t count toward pre-send size checks, but recipients may block them if the server is unreachable, leading to incomplete rendering or rejection.

Bulk Email and Template Design Issues

  • Running a bulk campaign with 100+ attachments or embedded media without size validation leads to consistent 552 errors. There’s no automatic throttling in SES—your code must enforce limits.
  • Dynamic content that generates large payloads (e.g., personalized PDFs per user) can exceed size caps if not pre-validated. Some users receive 5MB reports, others 20MB—your system should verify per recipient.
  • Mail clients enforce size limits during initial SMTP handshake. If your message is oversized, it’s rejected before delivery, often silently. Tools like Mail-Tester can simulate this check pre-send.
  • Spam filters may penalize large messages, especially when combined with high volume. While not the root cause of 552, this compounds deliverability issues.

Check your sender reputation, too—repeated 552 errors can trigger throttling or IP reputation penalties across providers. The fix isn’t just in reducing size; it’s in designing reliably, validating early, and measuring what’s actually sent.

Size limits are enforced at the receiving end, not necessarily by your provider. Your email may seem small in isolation—until you add up all embedded assets.

Pre-send checks and real-time validation are crucial. You can test actual message size before sending with tools like inbox placement testing, which simulates delivery behavior across real inboxes.

Why 552 5.2.2 Errors Are Hard to Debug Without Proper Infrastructure

552 5.2.2 errors in AWS SES happen when a message exceeds the recipient server’s size limit, but the logs rarely tell you what that limit actually is—just that it was breached. This makes debugging frustrating, especially when the same message works with one provider and fails with another because each mail server enforces different rules. Without visibility into the payload size before sending, you’re left guessing after it’s too late.

Recipient Limits Are Hidden, Vary Widely

When AWS SES returns a 552 5.2.2 error, it doesn’t specify what the actual size limit was at the recipient’s end. One provider might accept 25MB; another, 10MB. The same email that lands in Gmail might be rejected by a corporate Exchange server, purely because of varying policies. This inconsistency means your logs alone won’t guide you to the root cause.

Dynamic Content Can Cause Unexpected Size Spikes

Dynamic content—like personalized greetings, embedded user data, or transactional attachments—can grow unpredictably. A message that’s 20MB today might hit 28MB tomorrow if a new user has a large profile. You can’t spot these spikes until after the fact, especially if the payload isn’t validated in advance. Real-time size checks are the only way to catch these issues before sending.

Standard SMTP delivery fails silently when you don’t validate content size during construction. This isn’t just about attachments; even inline HTML with oversized images or excessive CSS can push a message past the limit. According to RFC 6154, mail servers are expected to reject oversized messages, but the response codes don’t require them to disclose the specific limit. That means the burden is on you to prevent violations proactively.

Let’s say you’re sending a newsletter with embedded reports. The template is solid, but when you pull in real-time data from a database, the output size grows beyond what the recipient expects. If no size validation occurs before delivery, you’ll see 552 5.2.2 errors in logs but no clue about why. That’s why debugging becomes a guessing game.

Proper infrastructure includes size tracking at send time, not just after delivery. Tools that simulate mailbox behavior—like inbox-placement testing—can help catch these issues early. You can also validate list health proactively to avoid sending large messages to outdated or invalid addresses. Clean your email list before sending, so you’re not wasting bandwidth on addresses that’ll never receive your message, let alone fail due to size.

Validating your email list in bulk helps avoid size-related bounces like 552 5.2.2 in AWS SES by identifying outdated, invalid, or high-risk recipients before sending. Even if the message itself is under the size limit, sending to stale or misconfigured addresses can trigger delivery failures due to recipient policies, repeated retries, or mailbox limits. Cleaning your list reduces the odds of hitting these edge cases.

Eliminating High-Risk Recipients Before They Receive Oversized Content

While email list validation doesn’t directly change message size, it reduces the chance of sending to domains with strict mailbox policies. Some enterprise environments enforce aggressive size limits or auto-reject oversized messages, especially if the recipient’s inbox is near capacity or their mail server is configured to block large messages from unverified senders.

Let’s say your list includes outdated contacts from a past marketing campaign. These accounts might no longer be active, or their mailboxes may have hit capacity. Attempting to deliver an email—even one under 10MB—to such an account can trigger a 552 5.2.2 error, not because of your content size, but because the recipient server rejects it based on its internal logic. By validating your list ahead of time, you catch these problematic destinations early.

Using Real-Time Checks to Avoid Delivery Failures

With a real-time verification API, you can catch risky addresses during onboarding or list growth. These tools check the validity of an email address in milliseconds and flag known issues—like domains that reject large messages or that require pre-approval.

For example, some large organizations disable outbound mail for employee accounts with inactive profiles. Sending to these can cause bounces even if your email meets size guidelines. Our real-time email verification API identifies these cases by analyzing the server’s configuration and response patterns, helping you avoid sending to destinations likely to reject your content.

Additionally, domain-wide limits—like those enforced by Google Workspace or Microsoft 365—are common. These aren’t always transparent, but a robust verification system can detect known patterns from previous delivery attempts, helping you avoid sending large messages to domains known for stringent controls.

How to Measure & Optimize Message Size Before Sending

You can prevent 552 5.2.2 size exceedance errors in AWS SES by measuring message payload size before sending. Use tools to analyze total size, including attachments and embedded assets, and ensure it stays under 8MB. Compress files, link to cloud-hosted content, and test delivery to strict domains using inbox-placement tools. This reduces bounces and maintains sender reputation.

Real-Time Size Monitoring Before SMTP Submission

  • Use a verification API like real-time email validation to check content size during list prep — some validation tools include payload analysis.
  • Integrate size checks into your email build process: calculate total message size (headers + body + attachments) before sending.
  • Many MTA platforms, including AWS SES, reject messages over 8MB, so aim for a consistent 7MB or under to allow room for headers and variations in delivery.

Reduce Payload Using Smart Content Practices

  • Inspect all attachments: if any file exceeds 1MB, compress it with ZIP or similar tools before sending.
  • Avoid embedding large images or files directly in the email; instead, host them on a CDN and link to them.
  • Use RFC 5322 best practices for email formatting — avoid unnecessary HTML complexity.
  • Test delivery to domains with known strict limits using inbox-placement tools like inbox placement testing. This shows how your size and formatting fare in real inboxes.
Even a 1MB overlimit on AWS SES triggers a 552 5.2.2 error — delivery fails silently. Prevent this with measurement, not guesswork.

For bulk campaigns, clean your list first with bulk email list cleaning to eliminate invalid or outdated entries that increase payload risk. The goal isn't just deliverability, but reliable inbox placement — and size is one of the biggest levers.

Can You Recover from 552 5.2.2 After It Occurs?

Once AWS SES logs a 552 5.2.2 "message size exceeds limit" error, retrying the same oversized message will fail again—SMTP servers track and refuse repeated attempts to deliver the same rejected payload. You cannot recover from this error by resending unchanged content; the fix requires reducing the payload size or modifying the message before retrying.

Why Retry Logic Alone Won’t Fix Size Exceedance

SMTP servers like AWS SES don’t treat transient errors the same as persistent failures. When a 552 5.2.2 occurs, the server records the rejection. If you resend the exact same message, even after a delay, the server recognizes it and blocks it without re-evaluation. This is standard behavior across major email providers, including Gmail and Outlook, which treat size violations as hard limits tied to the message content, not temporary network conditions.

Some older systems may allow a few retries before blocking, but AWS SES enforces strict size checks at delivery time. According to RFC 5321, message size limits are enforced by the receiving MTA, and retry attempts with identical content don’t reset that enforcement. The server logs the message ID and size during the first attempt—it knows what failed.

How to Actually Fix and Prevent Recurrence

Successful recovery means revising the content before resending. If your message exceeds the maximum accepted size (typically 10 MB for AWS SES including headers and attachments), reduce the payload by trimming large attachments, compressing files, or replacing embedded images with links to hosted content. Even changing the subject line can help if you’re near the limit.

Instead of blindly retrying, use bounce tracking to identify error types. You can segment bounces by code—552 5.2.2, 550 5.1.1, etc.—and adjust your sending strategy accordingly. For example, messages with attachments consistently triggering 552 errors should be flagged for size review before sending.

Prevention is more effective than recovery. Use real-time email verification to exclude invalid or problematic addresses before sending. High-quality lists reduce the chance of reaching size limits due to unanticipated recipients or misrouted content. Our bulk email list cleaning service helps identify and remove risky contacts, reducing delivery failures and ensuring your sends stay within envelope limits.

How AWS SES Size Enforcement Compares to Other Providers

AWS SES enforces a strict 10MB message size limit—exceeding it results in immediate rejection before any delivery attempt. This aligns with Gmail, Outlook, and Yahoo’s public 10MB caps, but differences emerge: some providers reject over 10MB regardless of sender settings, while enterprise systems may apply tighter controls, such as 2MB internal limits. Your message might pass AWS SES yet fail delivery due to recipient-side filtering.

Size Limits Vary by Recipient and Infrastructure

While most major providers publicly state a 10MB limit, real-world delivery isn’t always consistent. Gmail, for instance, often blocks messages over 10MB even if the sending infrastructure allows it—this happens at the user or filtering layer, not the SMTP level. The reason? To reduce bandwidth use and handle attachments efficiently at scale. You can send a 10MB email from AWS SES to Gmail, but the recipient might still see a “message too large” error if Gmail’s internal processing blocks it.

Enterprise domains often enforce stricter rules. Internal mail servers in organizations like banks or government agencies can block messages over 2MB, regardless of the sender’s outbound limits. This isn’t about AWS SES—it’s about how recipients manage their inbound mail policy. A message that passes AWS SES may never reach the inbox because the receiving server applies a more aggressive size cutoff.

AWS SES: Predictable, Hard-Capped Enforcement

Unlike some providers that apply dynamic or context-sensitive size limits (e.g., based on attachment type, spam risk, or user behavior), AWS SES enforces its 10MB cap consistently and at the earliest stage. If your message exceeds it, you get a 552 5.2.2 error and no further processing. This clarity means you can’t guess whether delivery will work—either you’re under 10MB or your send fails upfront.

This predictability is a strength for automation. You don’t need to probe delivery behavior to know if the size is an issue. Still, it requires you to control content size proactively. For example, if your emails include large attachments, consider using a link to a file hosted externally instead of embedding it. Email List Validation’s inbox placement testing helps spot deliverability issues early—including size-related delivery failures—so you can test how your messages land in real inboxes before sending at scale. Test your content’s inbox placement with realistic scenarios.

For reference, the IETF’s RFC 5321 outlines standard SMTP transaction limits, though it doesn’t specify attachment size. Still, it’s the foundation of how email servers negotiate message size. Learn more about SMTP size negotiation in the official specification.

What to Do If You Keep Getting 552 5.2.2 with No Clear Fix

If you’re seeing consistent 552 5.2.2 size exceedance errors in AWS SES logs and no obvious fix emerges, it’s not just your content size. The issue could be a mix of recipient policy misalignment, hidden delivery roadblocks, or even sender reputation signals. Let’s walk through the real, non-obvious fixes you can take now.

Check for Hidden Delivery Red Flags

  • Verify your sending domain is not on any public blocklists using tools like Spamhaus Lookup or MXToolbox — a single blacklisting can trigger strict filtering even for valid messages.
  • Check if your emails contain dynamic content such as personalized images or embedded assets that expand in size with each recipient. Even small images in high-volume sends can push total payload beyond recipient limits.
  • Use a real-time email verification API like real-time email validation to test if recipient servers are likely to reject large messages before they’re even sent.

Proactively Confirm Recipient Limits

  • Some email providers (especially enterprise domains like Gmail, Microsoft, or corporate inboxes) apply aggressive size limits behind the scenes—often 25MB, but sometimes as low as 10MB for messages with attachments.
  • If possible, contact the recipient’s IT or email support team to clarify their exact message size policies. They may allow larger payloads only from specific senders or require compression.
  • For mass emails, ensure your message is optimized: serve large assets via URL instead of embedding them, and strip out unnecessary data like redundant headers or outdated metadata.
Size exceedance errors don’t always mean your message is too big—they may reflect a policy mismatch, an outdated sender reputation signal, or the recipient’s server being overly restrictive without explicit guidance.

Integrating Verification into Your AWS SES Workflow

Before sending mail via AWS SES, pre-validate your list using the Email List Validation API to filter out risky and catch-all addresses. Then, test inbox placement on sample messages to gauge deliverability across major providers. Combine this with size checks to avoid 552 5.2.2 errors caused by oversized messages. This workflow reduces bounces, improves sender reputation, and keeps your emails in inboxes.

Pre-Flight Checks with the Email List Validation API

  1. Run a bulk verification on your sender list using the Email List Validation API. This checks syntax, domain existence, and mailbox responsiveness before AWS SES ever sees the list.
  2. Remove addresses flagged as “catch-all” or “risky”. These often point to domains that accept all email for delivery testing, but may silently reject messages or trigger filtering based on size or content thresholds. Such domains frequently enforce strict size limits and are high-risk for 552 5.2.2 bounces.
  3. Filter out disposable email domains. Domains like temporary email services often reject messages that exceed size limits or are flagged by anti-abuse systems. Tools like MxToolbox can help identify known disposable domains, but automated verification is more reliable.

Simulate Delivery and Confirm Size Limits

  1. Run inbox-placement tests using the inbox-placement tool on a sample of your messages. This simulates how your email lands across Gmail, Yahoo, Outlook, and other inboxes, identifying issues before mass sending.
  2. Validate message size before sending. Ensure your email body, headers, and attachments stay under the 10 MB limit enforced by most providers. For large senders, test message size on actual mail servers via tools like RFC 5321, which defines SMTP transmission limits.
  3. Combine list hygiene and size validation. Even valid addresses can fail if the message exceeds recipient limits. Pre-emptive verification and size checks together prevent 552 5.2.2 errors by ensuring your list is clean and your content fits within accepted size boundaries.

Let’s be clear: AWS SES doesn’t tell you why a 552 5.2.2 error occurred. It only reports it. That’s why you need to inspect your full delivery chain — list quality, message size, domain policies, and inbox placement — not just one part. Use real-time verification and inbox testing to build resilience into your workflow.

The Bottom Line: Prevent 552 5.2.2 Errors Before They Happen

Size exceedance errors are hard rejections. Once triggered, recovery is unreliable and often impossible—your message never reaches the inbox, and reputation damage may follow.

Proactive measures are required. Bulk list validation and real-time payload testing identify high-risk recipients and oversized content before they trigger a 552 5.2.2 error in AWS SES.

Email List Validation’s 98.9% accuracy helps you detect potentially problematic addresses and content-heavy senders before deployment. With 100 free verifications to start and credits that never expire, testing safe sending is both practical and accessible.

Keep reading

Ready to put this into practice? Email List Validation verifies emails with 98.9% accuracy — start with 100 free verifications.

Frequently asked questions

What does 552 5.2.2 mean in AWS SES?

It means the message size exceeds the recipient server’s limit. AWS SES enforces a 10MB maximum, and any message exceeding this is rejected during the DATA phase.

How do I prevent 552 5.2.2 errors in AWS SES?

Keep email payloads under 8MB, avoid large attachments, compress assets, and validate your list to remove risky or outdated addresses before sending.

Can I fix a 552 5.2.2 error after it happens?

Only by reducing message size and resending. The same message will fail again if the size limit is still exceeded.

Do all email providers have the same size limit?

No. Most accept 10MB, but internal domains or enterprise providers may limit to 2–4MB. Gmail enforces size checks at the user level.

It identifies high-risk or outdated email addresses that may belong to domains with strict or undefined size policies, reducing failed sends.

Can I test message size before sending in AWS SES?

Yes, calculate payload size in your application before calling the AWS SES API. Use tools or libraries to pre-check content and attachments.

What is the maximum size AWS SES allows?

AWS SES enforces a 10MB message payload limit. This includes the body, headers, and all attachments or inline content.

How do catch-all addresses relate to 552 5.2.2 errors?

Catch-all domains accept any email, but may still enforce size limits. A 'catch-all' verdict doesn't guarantee successful delivery—it only means the address is technically valid.

Should I remove all large attachments from emails sent via AWS SES?

Remove or compress large files. Use links to cloud storage instead. This reduces risk of size exceedance and improves deliverability.

How accurate is Email List Validation?

Email List Validation achieves 98.9% accuracy in verifying email addresses, helping identify invalid, risky, or high-risk recipients before sending.