SPF PermError: la guía completa para comprender, diagnosticar y corregir este error
Por CaptainDNS
Publicado el 4 de marzo de 2026

- Un SPF PermError es un error permanente que invalida tu registro SPF y provoca el rechazo de tus correos electrónicos
- Las 6 causas: superación de 10 DNS lookups, registros SPF múltiples, errores de sintaxis, void lookups > 2, redirect inválido, includes circulares
- El PermError hace fallar DMARC en cascada: si DKIM también falla, tus correos son rechazados o enviados a spam
- Diagnóstico en 6 pasos: verificar los duplicados, la sintaxis, el contador de lookups, los void lookups, el redirect y los bucles
- Cada causa tiene una corrección específica: fusión, reescritura, flattening, eliminación de mecanismos inválidos
Tu monitoreo DMARC muestra repentinamente cientos de resultados permerror para tu dominio. Tus correos legítimos son rechazados por Gmail, Outlook y Yahoo. Sin embargo, no has modificado recientemente tu configuración SPF.
El SPF PermError es uno de los errores más comunes y peor comprendidos de la autenticación de correo electrónico. A diferencia de un simple fallo SPF (fail o softfail), el PermError significa que tu registro es estructuralmente inválido: los servidores de recepción ni siquiera pueden evaluarlo. Y las causas son múltiples, desde la superación del límite de 10 lookups hasta un simple error de sintaxis.
Esta guía detalla las 6 causas posibles de un SPF PermError, explica cómo identificar con precisión cuál afecta a tu dominio y proporciona las correcciones adaptadas a cada situación.
¿Qué es un SPF PermError?
Definición según la RFC 7208
La RFC 7208, sección 2.6.7 define el resultado permerror como un error permanente en la evaluación SPF. Este resultado se devuelve cuando el registro SPF no puede ser correctamente interpretado por el servidor de recepción.
A diferencia de otros resultados SPF (pass, fail, softfail, neutral), el PermError indica un problema en la estructura del registro, no en la autorización del remitente. El registro está roto y no se puede tomar ninguna decisión de autorización.
Diferencia entre PermError y TempError
| Resultado | Tipo | Causa | Acción |
|---|---|---|---|
| PermError | Error permanente | Registro SPF inválido | Corrección obligatoria por el administrador |
| TempError | Error temporal | Timeout DNS, servidor no disponible | Resolución automática, nuevo intento |
fail | Resultado normal | IP no autorizada | Verificar el remitente |
softfail | Resultado normal | IP no autorizada (modo permisivo) | Aceptado con marcado |
El TempError es transitorio: un servidor DNS momentáneamente no disponible puede provocarlo. El PermError, en cambio, persiste mientras el registro no sea corregido. Cada correo enviado desde tu dominio genera el mismo error.
Las 6 causas de un SPF PermError
Causa 1: Superación del límite de 10 DNS lookups
Es la causa más frecuente. La RFC 7208 limita a 10 el número de consultas DNS durante la evaluación SPF. Los mecanismos include:, a, mx, redirect y exists cuentan cada uno como un lookup. Al llegar al 11.o lookup, el servidor devuelve inmediatamente permerror.
# Ejemplo: 12 lookups (permerror)
v=spf1 include:_spf.google.com include:sendgrid.net include:servers.mcsv.net include:spf.brevo.com include:spf.protection.outlook.com mx ~all
Con Google Workspace (4 lookups), SendGrid (2), Mailchimp (1), Brevo (2), Microsoft 365 (2) y un MX (1), el total alcanza 12. La primera guía de esta serie detalla los métodos para resolver este problema específico.
Causa 2: Varios registros SPF en el mismo dominio
La RFC 7208 exige que un dominio publique un solo registro TXT que comience por v=spf1. Si tu zona DNS contiene dos registros SPF, el resultado es sistemáticamente permerror.
# INCORRECTO: dos registros SPF (permerror)
captaindns.com. TXT "v=spf1 include:_spf.google.com ~all"
captaindns.com. TXT "v=spf1 include:sendgrid.net ~all"
# CORRECTO: un solo registro fusionado
captaindns.com. TXT "v=spf1 include:_spf.google.com include:sendgrid.net ~all"
Este error ocurre frecuentemente cuando se agrega un nuevo servicio copiando y pegando el registro proporcionado por el proveedor, sin fusionarlo con el existente.
Causa 3: Errores de sintaxis
Un error tipográfico, un espacio de más o un mecanismo mal escrito hacen que el registro sea inválido:
| Error | Ejemplo | Corrección |
|---|---|---|
| Prefijo ausente | include:_spf.google.com ~all | Agregar v=spf1 al inicio |
| Mecanismo inválido | v=spf1 include _spf.google.com ~all | Reemplazar espacio por : |
| IP mal formateada | v=spf1 ip4:192.168.1 ~all | Corregir a ip4:192.168.1.0/24 |
Mecanismo ptr | v=spf1 ptr:captaindns.com ~all | Eliminar (obsoleto en RFC 7208) |
Doble all | v=spf1 include:_spf.google.com ~all -all | Conservar un solo all |
Causa 4: Void lookups (límite de 2)
La RFC 7208, sección 11.1, impone un segundo límite frecuentemente ignorado: 2 void lookups como máximo. Un void lookup se produce cuando un mecanismo DNS devuelve una respuesta vacía (NXDOMAIN o sin resultado).
# Ejemplo: includes hacia dominios inexistentes
v=spf1 include:antiguo-servicio.captaindns.com include:servicio-eliminado.captaindns.com include:_spf.google.com ~all
Si antiguo-servicio.captaindns.com y servicio-eliminado.captaindns.com devuelven NXDOMAIN, alcanzas 2 void lookups. Un tercer include inválido desencadenaría el PermError.
Causa 5: Redirect hacia un dominio sin SPF
El mecanismo redirect= redirige la evaluación SPF hacia otro dominio. Si ese dominio no tiene un registro SPF, el resultado es permerror.
# INCORRECTO: dominio destino sin registro SPF
v=spf1 redirect=_spf.captaindns.com
# (si _spf.captaindns.com no tiene TXT v=spf1 → permerror)
# CORRECTO: dominio destino con SPF válido
v=spf1 redirect=_spf.captaindns.com
# (con _spf.captaindns.com: "v=spf1 ip4:203.0.113.0/24 ~all")
Causa 6: Includes circulares o irresolubles
Si tu SPF contiene una cadena de includes que forma un bucle sobre sí misma, la evaluación falla:
# Bucle circular (permerror)
# captaindns.com → v=spf1 include:_spf.captaindns.com ~all
# _spf.captaindns.com → v=spf1 include:captaindns.com ~all
Este caso es raro pero ocurre durante reconfiguraciones DNS mal coordinadas.
¿Cómo diagnosticar un SPF PermError?

Sigue estos pasos en orden para identificar la causa exacta:
Paso 1: Verificar el número de registros SPF
dig +short TXT captaindns.com | grep "v=spf1"
Si el comando devuelve más de una línea, es la causa 2. Fusiona los registros.
Paso 2: Verificar la sintaxis
Cada mecanismo debe estar correctamente formateado: include:dominio, ip4:dirección/máscara, mx, a. Los errores más comunes: espacio en lugar de :, prefijo v=spf1 ausente, doble all.
Paso 3: Contar los DNS lookups
Resuelve recursivamente cada include:, a, mx, redirect y exists. El total no debe superar 10.
Paso 4: Verificar los void lookups
Prueba cada dominio referenciado por include: y redirect=. Si más de 2 devuelven NXDOMAIN o una respuesta vacía, es la causa 4.
Paso 5: Probar el redirect
Si tu SPF utiliza redirect=, verifica que el dominio destino posea un registro SPF válido.
Paso 6: Buscar los bucles
Sigue la cadena de includes manualmente para detectar posibles ciclos.
¿Cómo corregir cada tipo de PermError?
Registros múltiples: fusionar
Recupera los mecanismos de cada registro SPF y combínalos en uno solo:
# Antes: 2 registros (permerror)
"v=spf1 include:_spf.google.com ~all"
"v=spf1 include:sendgrid.net ~all"
# Después: 1 solo registro
"v=spf1 include:_spf.google.com include:sendgrid.net ~all"
Crea tu registro fusionado con nuestro SPF Generator.
Errores de sintaxis: reescribir
Compara tu registro con la sintaxis oficial de la RFC 7208. Los puntos a verificar:
- El prefijo
v=spf1es obligatorio y va en primera posición - Cada mecanismo está separado por un espacio único
- Los mecanismos
include:yredirect=van seguidos de un dominio válido - Un solo mecanismo
allen última posición - El mecanismo
ptrestá obsoleto, elimínalo
DNS lookups: reducir a menos de 10
Tres enfoques para reducir el número de lookups:
- Eliminar los includes innecesarios: suprime los servicios que ya no utilizas
- Reemplazar por IPs directas: para tus propios servidores, utiliza
ip4:eip6:en lugar deinclude: - SPF flattening: resuelve automáticamente todos los includes en direcciones IP con nuestro SPF Flattener
Void lookups: limpiar las referencias inválidas
Elimina o corrige cada include: que apunte a un dominio inexistente. Verifica que todos los dominios referenciados tengan un registro DNS válido.
Redirect inválido: publicar el SPF destino
Asegúrate de que el dominio utilizado con redirect= posea un registro TXT v=spf1 ... válido.
SPF PermError y DMARC: el efecto dominó

Un SPF PermError no queda aislado. DMARC verifica dos mecanismos de autenticación: SPF y DKIM. Cuando SPF devuelve permerror, DMARC considera el alineamiento SPF como fallido. Si DKIM también falla (clave expirada, encabezado modificado, firma inválida), los dos pilares de DMARC caen.
La cascada es directa:
- SPF PermError: DMARC no puede validar el alineamiento SPF
- Si DKIM también falla: DMARC falla totalmente
- Con
p=reject: el correo es rechazado por el servidor de recepción - Con
p=quarantine: el correo se coloca en spam
El problema es especialmente insidioso con una policy DMARC p=none: los correos pasan pero tus informes DMARC muestran tasas de fallo crecientes. El día que cambias a p=reject, todos los correos cuyo SPF está en PermError son rechazados.
Plan de acción recomendado
- Diagnostica la causa exacta: utiliza los 6 pasos de verificación para identificar el tipo de PermError
- Aplica la corrección específica: cada causa tiene su propio método de corrección
- Prueba antes de publicar: valida tu nuevo registro en una herramienta de diagnóstico antes de modificar tu zona DNS
- Verifica el impacto en DMARC: después de la corrección, confirma que tus informes DMARC ya no muestren PermError
- Implementa un monitoreo: supervisa tu registro SPF mensualmente para detectar regresiones
FAQ
¿Qué es un SPF PermError?
Un SPF PermError es un error permanente que se devuelve cuando un registro SPF no puede ser correctamente evaluado por el servidor de recepción. A diferencia de un TempError (transitorio), el PermError persiste mientras el registro no sea corregido por el administrador DNS.
¿Cuáles son las causas más frecuentes de un SPF PermError?
Las 6 causas principales son: la superación del límite de 10 DNS lookups, la presencia de varios registros SPF en el mismo dominio, los errores de sintaxis, la superación de 2 void lookups, un redirect hacia un dominio sin SPF y los includes circulares.
¿Un SPF PermError hace fallar DMARC?
Sí. DMARC considera un SPF PermError como un fallo del alineamiento SPF. Si DKIM también falla, DMARC falla totalmente. Con una policy p=reject, los correos son rechazados por el servidor de recepción.
¿Cómo saber si mi SPF tiene un PermError?
Utiliza una herramienta de diagnóstico SPF que evalúe tu registro en tiempo real. Los informes DMARC agregados (formato RUA) también indican los resultados SPF para cada fuente de envío, incluyendo los PermError.
¿Cuál es la diferencia entre PermError y TempError?
El PermError es un error permanente causado por un registro SPF inválido (sintaxis, lookups, estructura). El TempError es un error temporal causado por un problema DNS transitorio (timeout, servidor no disponible). El TempError se resuelve generalmente por sí solo, el PermError requiere una intervención manual.
¿Qué es un void lookup?
Un void lookup se produce cuando un mecanismo DNS en tu SPF devuelve una respuesta vacía (NXDOMAIN o sin resultado). La RFC 7208 limita los void lookups a 2 por evaluación SPF. Más allá de eso, el resultado es PermError, incluso si el total de lookups es inferior a 10.
¿Se puede tener un PermError con menos de 10 lookups?
Sí. El PermError puede ser provocado por otras causas distintas a la superación de 10 lookups: registros SPF múltiples, errores de sintaxis, void lookups superiores a 2, redirect inválido o includes circulares. El contador de lookups es solo una de las 6 verificaciones necesarias.
Glosario
- PermError: error permanente que se devuelve cuando un registro SPF es estructuralmente inválido y no puede ser evaluado por el servidor de recepción.
- TempError: error temporal que se devuelve cuando un problema DNS transitorio impide la evaluación SPF. Se resuelve generalmente de forma automática.
- Void lookup: consulta DNS que devuelve una respuesta vacía (NXDOMAIN o sin resultado). Limitado a 2 por evaluación SPF según la RFC 7208.
- DMARC: protocolo de autenticación de correo electrónico que verifica el alineamiento SPF y DKIM para decidir el tratamiento de los mensajes (aceptar, enviar a spam, rechazar).
- RFC 7208: especificación oficial del protocolo SPF (Sender Policy Framework) que define las reglas de evaluación, los límites de lookups y los resultados posibles.
Verifica tu registro SPF ahora: utiliza nuestro SPF Record Check para diagnosticar los errores y corregir tu SPF antes de que afecte a tu entregabilidad.
📚 Guías de SPF relacionadas
- SPF "Too Many DNS Lookups": la guía completa para corregir el límite de 10 lookups
- SPF Flattening vs SPF Macros: qué enfoque elegir para respetar el límite de 10 lookups?


