SPF: spf=permerror — Multiple SPF records found for example.com
The domain publishes more than one TXT record starting with v=spf1; receivers must treat that as a permanent error.
Multiple SPF records foundspf=permerror multiple SPF recordsSPF PermError multiple recordsmore than one SPF recordReceived-SPF: PermError (multiple records) Meaning
A domain may have exactly one SPF record. When you add a new email service, merge its include: into the existing record instead of creating a second TXT record. After merging, delete the duplicate and wait for DNS TTL to expire.
Common causes
- A second
v=spf1record added for a new service - Records at both the apex and a conflicting wildcard
- DNS provider UI creating duplicates
- Old record never removed
- CNAME and TXT both present at the name
⚡ Quick fix
- List all TXT records and merge into one
v=spf1line - Delete duplicates and verify
- Keep one record with all includes and a single final
-allor~all
Detailed fix by platform
Linux
dig +short TXT example.com | grep -c "v=spf1"should print 1
Code examples
One merged record
example.com. IN TXT "v=spf1 include:_spf.google.com include:sendgrid.net ~all"How to diagnose
- Count — Records starting v=spf1?
- Merge — Includes combined?
- TTL — Propagated?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- 550 5.7.25 PTR record required SMTP: 550-5.7.25 The IP address sending this message does not have a PTR record setup, or the corresponding forward DNS entry does not point to the sending IP
- 550 5.7.26 550 5.7.26 This mail has been blocked because the sender is unauthenticated (SPF/DKIM/DMARC)
- DKIM: no key for signature DKIM: dkim=permerror (no key for signature) / key not found in DNS selector._domainkey
Most viewed in Email / SMTP
- 550 5.7.1 550 5.7.1 Relaying denied / Message rejected as spam / Unauthenticated email not accepted
- 550 5.1.1 550 5.1.1 The email account that you tried to reach does not exist (User unknown)
- SES: Maximum sending rate exceeded Amazon SES: Throttling — Maximum sending rate exceeded (454 Throttling failure)
Other ways to find it
Where this error sits
Origin: Network. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 4 Nov 2026