Free 15-min triage

Email delivery

Transactional emails never arrive

Your app sends sign-up confirmations, password resets and receipts. In testing they arrived. Now real users say nothing turns up, and every missing email is a user locked out or a customer without proof of payment. Email looks like one API call, but delivery depends on infrastructure your AI builder never touched: DNS records that vouch for your sender, a provider that is actually in production mode, and handling for the mail that comes back. Here are the six failures that stop transactional email arriving, and what each one looks like from inside the codebase.

Fixed £4,500 · 3 days · pass-or-refund · next slot w/c 3 August

What actually breaks

Why the demo hid all six

Every one of these failures is invisible in a demo. You tested with your own address, which is exactly the address a sandbox mailer or team-only SMTP is allowed to reach. Volume was far too low to hit a rate limit or a bounce threshold. Your dev server stays alive after each response, so un-awaited sends completed anyway. One successful production test clears nothing either: the un-awaited path fails intermittently, not every time. Diagnosis therefore starts from the receiving end: send a test to a real Gmail account and read the message headers, where Authentication-Results states plainly whether SPF, DKIM and DMARC passed and for which domain. Then read the provider's event log rather than your application log, because only the provider knows what happened after accepted.

What “done” looks like

We agree one of these in writing before you pay anything. If it passes, the sprint passed. If it doesn't, you get a full refund and keep the work.

Pass-or-refund guarantee

We agree the acceptance test before any work starts. If it doesn't pass within three working days, you get a full refund and keep every change I've committed. The risk is mine, not yours.

Get a yes/no on your blocker · free, 15 min