EmailBuilder.ai
Troubleshooting

Send failed

A send shows status "failed" — here's how to read the error and recover.

When a send fails, its status is failed and the Send detail page shows an errorMessage from the ESP or from our send pipeline. This page maps the common errors to causes and fixes.

Where to find the error

  1. Open Sends in the app.
  2. Click the failed send.
  3. The error banner at the top shows the message verbatim, plus the ESP and timestamp.

The full error often contains the answer; this page covers the common patterns.

"From address is not verified"

The ESP refused to send because the from-address isn't authorised on your account.

Fix:

  • For SES: add the from-address (or its domain) as a verified identity in the SES console, then enable DKIM.
  • For SendGrid: verify the from-domain under "Sender Authentication".
  • For Mailgun: add the domain to your Mailgun account and complete DNS verification.
  • For Mailchimp: domain authentication is part of the connection setup; revisit the Audience settings.

A common cause is sending from a domain you haven't yet authenticated. EmailBuilder doesn't enforce verification on its side — the ESP does, and reports the error back.

"API key invalid" or "Unauthorized"

The ESP credentials stored in the connection are no longer valid.

Causes:

  • The API key was rotated/revoked at the ESP without updating EmailBuilder.
  • OAuth tokens expired (Gmail, Outlook, HubSpot use OAuth) and the refresh failed — usually because the user disconnected the app from their account.
  • The IAM permissions for an AWS SES key were reduced.

Fix:

  1. Account → Integrations → click the failing connection.
  2. For API key providers: paste a new key from the ESP's dashboard.
  3. For OAuth providers: click Reconnect and redo the OAuth flow.
  4. Save. The status badge should flip from red to green.

Once the connection is healthy, you can re-create the send (you can't retry a failed send in place — it's immutable once it lands in failed).

"Rate limit exceeded"

The ESP's per-second or per-day rate limit was hit.

Causes:

  • A burst of automation runs or large list sends in a short window.
  • A free-tier or trial ESP plan with low quotas.

Fix:

  • Wait — most rate limits roll on a 1-minute or 1-hour window. Re-create the send after that.
  • Upgrade the ESP plan if you're hitting daily limits.
  • Stagger automation triggers — schedule for slightly different times rather than the top of the hour.

EmailBuilder doesn't batch or throttle on your behalf; we hand the whole list to the ESP and let it manage delivery rate. That keeps things simple but means burst limits at the ESP are yours to manage.

"Recipient list is empty"

The audience step resolved to zero recipients.

Causes:

  • The selected list is empty.
  • The segment's conditions excluded everyone (e.g. "subscribed in last 7 days" but no recent subscribers).
  • The CSV file was uploaded but contained no valid email column.

Fix:

  • Check the list/segment in the ESP directly to confirm member count.
  • For CSVs: re-open the file and verify there's an email column header on row 1.
  • Re-create the send with a corrected audience.

"Plan limit exceeded"

You've used your monthly send quota.

Fix:

  • Wait for the cycle to reset (visible on the Billing page).
  • Upgrade your plan if you regularly hit the limit.
  • Ask support for a one-time bump if this is a one-off (e.g. a big launch).

This is the only failure that's an EmailBuilder limit, not an ESP one — it's enforced at send time before the ESP is called.

"Connection not found"

The connection the send was created against was deleted between scheduling and delivery.

Fix:

  • The send is unrecoverable in its current form. Re-create it against an existing connection.
  • Avoid deleting connections that have pending scheduled sends — cancel the sends first.

Send is stuck in "sending" for a long time

Most sends transition pending → sending → finished within a minute. A sending state lasting more than 10 minutes usually means:

Causes:

  • The ESP accepted the send but is processing a large list.
  • The send is large enough that we're streaming to the ESP and haven't received a final response.
  • The dispatch job hit a transient error and is retrying.

Fix:

  • Wait up to 30 minutes for large sends. Most resolve themselves.
  • Check the ESP's activity log — if the send appears there as delivered, the EmailBuilder status will catch up.
  • If still stuck after 30 minutes, contact support with the send ID — we can inspect the job state in the queue.

You cannot cancel a send in sending state — by then the ESP has it. Cancellation only works in pending (i.e. scheduled but not yet dispatched).

AI section generation failed at send time

For AI sections, the AI runs at send time. If generation fails:

Behavior:

  • The send falls back to the original template (with the prompt-as-text still in the AI section, untouched).
  • A warning surfaces on the Send detail page (aiWarnings).
  • The send still goes out — failure of one AI section doesn't block delivery.

Fix:

  • Use the Preview Next Send drawer before sending to validate the AI output. If preview fails, the live send would too.
  • Simplify long or ambiguous prompts. The AI handles concrete prompts ("3 product highlights from my Shopify feed") better than vague ones ("make it sparkle").
  • Verify attached content sources have items. An empty RSS feed yields no items, and the AI may struggle to compose meaningfully.

"Internal error" / "Server error"

Something in our pipeline broke. The send is in failed state with a generic message.

Fix:

  1. Re-create the send. Most internal errors are transient.
  2. If it fails twice in a row, email [email protected] with the send ID and the timestamp.

We log every dispatch attempt with the request and response; support can usually identify the exact issue and tell you whether re-trying will work or if there's an underlying config problem to fix.

On this page