← Problem log

Email verifier answers "ok", our code only accepted "valid", so every good address was held

Last verified Oct 23
Exact text to search:
"result": "ok" MillionVerifier valid

1What happened

We check every address before we send to it. We switched verifiers to MillionVerifier. For a good address it answers "result": "ok". The old provider answered "valid".

Our send-morning check and our list builder only treated "valid" as good. So every "ok" fell through to a hold line: "email check gave ok, not valid". A list run came back with 0 verified emails, though it plainly had good ones.

The same check also still pointed at the old provider, which we had stopped using the day before.

Why it was hard to see: our saved results keep only the status word and the provider, not the provider's raw answer. So nothing showed the word had changed.

2What we did

  1. Pinned the check to the new provider, and excluded the old ones, on every call.

  2. After reading the status, map the new word to the old one in one line, with a comment naming the provider. Something like:

    For builders
    # MillionVerifier says "ok" for a deliverable address; older providers said "valid".
    if status == "ok":
        status = "valid"
  3. A lead with no email at all now reads "skip", not "drop", so it never looks like a bad address.

3How we know it worked

On Fri Oct 23 at 4:10 AM PT, a live call on a known-good address returned "result": "ok", "subresult": "ok", "quality": "good". A minute later, at 4:11 AM PT, our own check on the same address, with the new code, returned "status": "valid". It passed and was not held.

4What you can take from it

When you swap a data provider, read one raw answer before you trust your old status words.

email verificationmillionverifierdata providersSolved Oct 22
Robb Lejuwaan

Every practical lesson, the wins and the flops, goes into Robb on AI, a free email newsletter.

Robb Lejuwaan, writer of Robb on AI
Read it free