Your domain has more than one TXT record starting with "v=spf1". RFC 7208 requires exactly one SPF record per domain. Multiple records cause a PermError, meaning SPF authentication fails for all emails.
Merge all SPF records into a single TXT record.
DNS returned two or more TXT records containing "v=spf1" for your domain. The SPF specification explicitly states that a domain must have no more than one SPF record. When multiple are found, the result is a PermError — a permanent failure that cannot be retried.
A PermError means every email sent from your domain fails SPF. This is worse than having no SPF record at all (which would just return "none"). Failed SPF weakens DMARC alignment and increases the probability of emails being marked as spam or rejected.
Query your domain for all TXT records and identify every one that starts with v=spf1.
dig +short TXT yourdomain.com | grep "v=spf1"
# Example output showing the problem:
# "v=spf1 include:_spf.google.com ~all"
# "v=spf1 include:sendgrid.net ~all"Take all the mechanisms from each SPF record and merge them into a single record. Keep only one "all" qualifier at the end.
Record 1: v=spf1 include:_spf.google.com ~all
Record 2: v=spf1 include:sendgrid.net ~allv=spf1 include:_spf.google.com include:sendgrid.net -allIn your DNS management console, remove all but the single merged SPF TXT record. Be careful not to delete non-SPF TXT records (like DKIM or domain verification records).
Confirm only one SPF record exists and it parses correctly.
dig +short TXT yourdomain.com | grep "v=spf1"
# Should return exactly one line:
# "v=spf1 include:_spf.google.com include:sendgrid.net -all"After making changes, use our free scanner to verify the fix is working correctly. DNS changes can take up to 48 hours to propagate, but most propagate within minutes.
The SPF specification (RFC 7208) mandates exactly one SPF record per domain. Multiple records create ambiguity — a receiver doesn't know which one to evaluate. Instead of guessing, the spec says to return a PermError.
Use a single SPF record with multiple "include" mechanisms. For example: v=spf1 include:_spf.google.com include:sendgrid.net include:amazonses.com -all
This usually happens when setting up a new email service. The provider's instructions say "add this SPF record" and you create a new TXT record instead of updating the existing one. Always edit your existing SPF record to add new includes.