Email verifier answers "ok", our code only accepted "valid", so every good address was held
"result": "ok" MillionVerifier valid1What 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
Pinned the check to the new provider, and excluded the old ones, on every call.
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"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.
