DKIM Fail with No Key for Signature: What's Going On?


If you’ve run into a DKIM failure with the error "dkim=fail (no key for signature)" in the authentication results header, you’re probably wondering what’s wrong and how to fix it. DKIM authentication works by matching a cryptographic signature in your email headers with a public key stored in your domain’s DNS records. If the recipient’s mail server can’t find that key, authentication fails, usually with this error message.

Possible Reasons

A "no key for signature" failure can sometimes be a false positive, meaning the key is actually published, but the mail server of the receiving mailbox provider (Yahoo, Gmail, Microsoft, etc.) isn’t seeing it. This typically happens when:
  • Your DNS servers aren’t in sync (some have the correct DKIM key, others don’t).
  • The recipient’s mail server queries a DNS server that doesn’t have the correct data yet.
  • There’s a propagation delay after updating your DNS records.
  • A network or routing issue prevents the recipient’s mail server from reaching your DNS.

Test Multiple DNS Servers

If the error is intermittent, it’s a strong clue that some DNS servers are returning the right data while others aren’t. Here’s how you can check (in the links below, update the domain name and selector to reflect your own DKIM configuration):
  • Test Against Authoritative Nameservers. Your domain has authoritative nameservers (the ones meant to answer query requests for your domain) that should all return the same DKIM key when querying them via DNS. You can check them using WombatMail’s DKIM Lookup (set to authoritative). If some nameservers return the key but others don’t, there’s a sync issue with your DNS provider.
  • Test Against Public DNS Servers. To see if external mail providers are getting the right DKIM key, query a mix of public DNS resolvers, using WombatMail’s DKIM Lookup (set to “Public DNS”) If some public resolvers find your DKIM key but others don’t, your DNS records haven’t fully propagated or a DNS caching issue is at play.

What You Can Do

If you’re seeing mixed results – some servers show the key information, but others do not, then your options here are:
  1. Wait to see if this is something that will work itself out (usually). If you only recently corrected broken or missing DNS settings in your DNS control panel, it’s possible, even likely, that eventually, whatever is old/bad cached by various DNS servers will get replaced with updated and correct info. If you’re like me, you’ll sit and hit reload on the public DNS check approximately 37,503 times just so you can watch the correct information find its way out to every public server checked. It’s fun! It’s rewarding! It beats real work.
  2. Reach out to your DNS provider for assistance (possibly). Generally wait a bit to see if it clears up on its own, first, but sometimes DNS servers can be configured in a way that means they’re never going to fully sync up with the correct data on their own. It’s rare, but it does happen, and it’s really going to be up to the administrators of the DNS server admin or service provider IT person to fix.
  3. Reach out to the mailbox provider (maybe). Intermittent DNS failures like this can get a bit tricky. Sometimes they can even be caused by routing issues – internet connectivity problems – that will prevent a mailbox provider from being able to see the proper DNS servers needed to query this information from. A ticket to the postmaster team at a given mailbox provider might be necessary. This is something where you might want to lean on an expert deliverability consultant – we tend to know which providers commonly have this issue and can apply a bit of occam’s razor to know whether or not there’s a chance that this is the underlying issue.

And Finally

Of course, this all predisposes that you do actually have the proper DKIM public key information in DNS for your sending domain name. If you’re never getting any positive results when trying to look up the DKIM info in DNS, that’s not going to change until you’re sure that you’ve got the right entries in the right place. (Did you forget the “._domainkey” part? This is a common mistake.)

The “good thing” about DNS issues causing email authentication failures and deliverability problems is that this doesn’t contribute to long term reputation or inbox placement issues. Failing authentication does not build up a bad reputation over time. Once the issue is fixed and the mailbox provider is able to find the correct information in DNS, the issue is essentially forgotten. It’s not a case where you need to again build up a good reputation from scratch.
Post a Comment

Comments