Debugger

Every send leaves a short trace: request in, template out, Gmail accepted, message sent — plus warnings you can act on.

Where to look

  • Dashboard → Debugger — pick a recent send, or paste a JSON body to inspect without sending.
  • Templates — Run debugger on a draft before you ship it.
  • The /api/send response includes debug.issues so your app can log them too.

Pipeline

Request received

Sendlib accepted the POST.

Template rendered

HTML built from your slug, or skipped for custom html.

Variables resolved

All {{placeholders}} filled from data.

Gmail accepted request

Google queued the message for that from account.

Message sent

Gmail returned a message ID.

What we flag

Missing {{variable}}

Pass it in data or remove it from the template.

Bad email address

to / from / cc / bcc must look like name@domain.com.

Invalid HTML

Unclosed tags can clip the email in some inboxes.

Image has no alt

Add alt so the image is readable without loading.

No unsubscribe URL

Needed for marketing. Ignore for OTP, reset, and receipts.

Broken link

Use a full https:// URL or a {{variable}} that becomes one.

HTML too large

Over 100 KB is slow on mobile. Plans also cap max size.