SPF permerror: what it means and how to fix it

A permerror (permanent error) means a receiving server could not evaluate your SPF record because it is invalid — most often because it exceeds the 10 DNS-lookup limit. The result is treated as an SPF failure.

What SPF permerror means

SPF evaluation returns one of several results: pass, fail, softfail, neutral, none, temperror, and permerror. A permerror specifically means the record could not be processed at all — it is malformed or exceeds a published limit. Receivers do not treat a permerror as a pass, so your mail loses SPF authentication.

Common causes of a permerror

How to fix an SPF permerror

  1. Confirm the cause. Check your lookup count and record validity with an SPF checker. If it’s over 10, that’s your permerror.
  2. Ensure a single record. Merge any duplicate v=spf1 records into one.
  3. Prune, then flatten. Remove dead includes; if real senders still exceed 10, flatten or switch to a macro.
  4. Keep it from recurring. A managed, self-healing record prevents a fixed record from silently drifting back into failure when providers change IPs.

Why this matters for DMARC

A permerror means SPF didn’t return a clean pass. Under DMARC, that removes SPF as a passing authentication method, so alignment now rests on DKIM alone. If DKIM also fails or isn’t aligned, a p=quarantine or p=reject policy will send legitimate mail to spam or bounce it outright. Keeping SPF under the limit is a prerequisite for enforcing DMARC safely.

Frequently asked questions

What does SPF permerror mean?
It means the receiving server could not evaluate your SPF record because it is invalid or exceeds a limit — usually more than 10 DNS lookups. The mail does not get an SPF pass.
Is a permerror the same as an SPF fail?
Not identical, but in effect yes: a permerror is not a pass, so most receivers and DMARC treat it as a failed/unauthenticated result.
How do I fix “too many DNS lookups” permerror?
Get under 10 lookups: prune unused includes, move senders to subdomains, and flatten the record to IPs or use a single-lookup macro.

Test your SPF record now

Not sure what’s triggering your permerror? Check your record’s lookups and validity in seconds.

Test My SPF Records →

Free check · no signup required to see your lookup count.