O limite de pesquisa nula foi introduzido no RFC 7208 e refere-se a pesquisas de DNS que retornam uma resposta vazia (NOERROR sem respostas) ou uma resposta NXDOMAIN. Essa é uma contagem separada da contagem geral de 10 pesquisas de DNS.
Conforme descrito no final da Seção 11.1 , pode haver casos em que é útil limitar o número de "termos" para os quais as consultas DNS retornam uma resposta positiva (RCODE 0) com uma contagem de respostas 0 ou um "Erro de nome "(RCODE 3) resposta. Às vezes, eles são chamados coletivamente de "pesquisas nulas". Implementações de SPF DEVEM limitar "pesquisas nulas" a duas. Uma implementação pode optar por tornar esse limite configurável. Nesse caso, um padrão de dois é RECOMENDADO. Exceder o limite produz um resultado "permerror".
Isso tem como objetivo ajudar a impedir que registros SPF errôneos ou mal-intencionados contribuam para um ataque de negação de serviço baseado em DNS.
No seu caso, a parte problemática parece ser:
include:spf.messaging.microsoft.com
Seu registro SPF é:
v=spf1 ptr:protection.outlook.com ptr:messaging.microsoft.com ptr:o365filtering.com -all
Todos os três desses registros, se consultados, retornam NOERROR sem registros ou NXDOMAIN.
Como três registros não retornaram nada, você excedeu o limite de pesquisa nula de 2 e o registro SPF falha.