For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
contact@agentmail.ccDiscord
DocumentationAPI ReferenceKnowledge BaseChangelog
DocumentationAPI ReferenceKnowledge BaseChangelog
    • Introduction
  • Getting Started
    • What is AgentMail?
    • What can I do with an inbox?
    • Creating your first inbox
    • Getting your API key
  • Agent Patterns
    • Handling inbound emails
    • Allowlists & blocklists
    • Managing threaded conversations
    • Human-in-the-loop workflows
    • Pods for multi-tenant email
    • Using labels to track state
  • Domains & Deliverability
    • Custom domain setup
    • SPF, DKIM, and DMARC setup
    • Emails going to spam
    • Warming Up
    • MX record conflicts
  • Troubleshooting
    • API 403 error
    • Rate limits
    • Preventing duplicate sends
    • Domain not verifying
    • Emails bouncing
    • Why are my emails not showing up?
  • DNS Guides
    • Cloudflare
    • GoDaddy
    • Route 53 (AWS)
    • Namecheap
LogoLogo
contact@agentmail.ccDiscord
On this page
  • Bounce types
  • Permanent bounces
  • Transient bounces
  • Monitoring bounces with webhooks
  • Automatic suppression
  • Keeping bounce rates low
Troubleshooting

Why are my emails bouncing?

Diagnose and resolve email bounce issues.
Was this page helpful?
Edit this page
Previous

Why are my emails not showing up?

The most common reason inbound emails go missing is that the sender's domain failed authentication.
Next
Built with

A bounced email means the recipient’s mail server rejected your message. Understanding the bounce type helps you take the right action.

Bounce types

Permanent bounces

The address is permanently unreachable. Common causes:

  • The email address does not exist
  • The domain does not exist
  • The recipient’s mailbox has been deleted

Action: Remove permanently bounced addresses from your sending lists immediately. Continuing to send to them will damage your sender reputation.

Transient bounces

Temporary delivery failure. Common causes:

  • Recipient’s mailbox is full
  • Recipient’s mail server is temporarily unavailable
  • Message is too large
  • Greylisting (server temporarily rejects first-time senders)

Action: AgentMail automatically retries transient bounces. If delivery fails after multiple attempts, the bounce is treated as permanent.

Monitoring bounces with webhooks

Subscribe to the message.bounced webhook event to track bounces in real time:

TypeScript
1import { serialization } from "agentmail";
2
3async function handleWebhook(payload: Record<string, unknown>) {
4 if (payload.event_type === "message.bounced") {
5 const event = await serialization.events.MessageBouncedEvent.parse(payload);
6
7 console.log(`Bounce type: ${event.bounce.type}`); // "Permanent" or "Transient"
8 console.log(`Sub type: ${event.bounce.subType}`); // e.g., "General"
9 console.log(`Message: ${event.bounce.messageId}`);
10
11 for (const recipient of event.bounce.recipients) {
12 console.log(`Bounced address: ${recipient.address}`);
13
14 if (event.bounce.type === "Permanent") {
15 // Remove from your sending lists
16 await removeFromList(recipient.address);
17 }
18 }
19 }
20}

Register a webhook to receive bounce events:

TypeScript
1import { AgentMailClient } from "agentmail";
2
3const client = new AgentMailClient({ apiKey: "am_..." });
4
5await client.webhooks.create({
6 url: "https://your-domain.ngrok-free.app/webhooks",
7 events: ["message.bounced"],
8});

Automatic suppression

AgentMail automatically prevents you from sending to addresses that have previously bounced, been rejected, or filed a spam complaint. This protects your sender reputation. Keep your account bounce rate under 4%, otherwise your account may be placed under review.

Keeping bounce rates low

PracticeWhy it matters
Validate addresses before sendingCatches typos and nonexistent addresses before they bounce
Remove permanent bounces immediatelyRepeated sends to invalid addresses damage reputation fast
Avoid purchased or scraped listsThese lists have high rates of invalid addresses
Warm up new domains graduallySudden high volume from a new domain triggers suspicion
Monitor bounce rateKeep it under 2% for healthy reputation; under 4% to avoid account review

For more on maintaining healthy sending metrics, see the Email Deliverability best practices.