[ DMARC & policy ]

DMARC temperror: trace DNS availability before changing policy

Use the exact response, authority, resolver and transport evidence to locate a failed DNS dependency, then verify recovery through the affected mail route.

By the EmailAuth research team · 7 min read

[ Key points ]

  • A temporary label is not proof of policy absence or a final fail.
  • Compare authority, recursion, validation and transport evidence.
  • Verify the intended resolution path rather than hiding the symptom.
On this page

Under RFC 9989 §9.2, a temporary DMARC error means the evaluation encountered a problem that may resolve on a later attempt. It does not mean the domain has no policy or that legitimate mail has conclusively failed authentication.

Treat the result as the start of a resolution investigation. Establish which required lookup failed, whether the data exists at its authority and what prevented the receiving system from obtaining a usable answer.

Capture the failed evaluation

Save the complete trusted result or returned SMTP response, time, From domain and sending route. Note which authentication method the error belongs to. A temporary SPF or DKIM problem is not automatically the same as dmarc=temperror.

Retain the exact lookup name and record type when logs expose them. A policy TXT query, an SPF dependency and a DKIM selector lookup can involve different names and authorities. Testing only the domain root can miss the failed dependency.

Preserve a small evidence packet before making changes. Repeated queries may succeed after the incident, so a later healthy answer cannot replace the original failure record.

Follow a response-based decision path

This is a diagnostic decision table, not a universal mapping from DNS status to one email disposition:

  • Query observation: Relevant complete answer with NOERROR; What it establishes: That query returned usable data at that time; Next investigation: Compare it with the receiver's earlier observation
  • Query observation: Complete no-data response; What it establishes: The requested record set was not found in that response context; Next investigation: Check exact name, authority, aliases and discovery
  • Query observation: NXDOMAIN without an alias complication; What it establishes: The queried owner name does not exist; Next investigation: Confirm the query scope and applicable fallback
  • Query observation: SERVFAIL; What it establishes: Resolution did not complete successfully; Next investigation: Inspect authority, delegation, validation and resolver logs
  • Query observation: REFUSED; What it establishes: A server declined the query; Next investigation: Check query policy and the server's intended role
  • Query observation: Timeout; What it establishes: No usable response arrived within the attempt's limits; Next investigation: Check reachability, transport, loss and server health

DNS response codes are defined by RFC 1035 §4.1.1; negative answers by RFC 2308 §2.1 and RFC 2308 §2.2. A query for _dmarc.example.com concerns that owner name. Its negative answer does not by itself establish that example.com does not exist. Follow alias chains before attributing an absence to the original queried name.

Compare authoritative and recursive paths

First identify the correct authoritative servers, including any delegated subdomain. Test the relevant name at each authority and compare answers. If the authorities disagree, investigate the zone's serving state and recent changes.

Then inspect the recursive path used by the affected receiving system where evidence is available. Compare query time, status, answer and TTL. An operator's local resolver and a remote receiver can have different cached or validation state.

The following fictional abbreviated transcript illustrates the comparison:

14:02 UTC | recursive resolver R | _dmarc.example.com TXT | SERVFAIL
14:04 UTC | authoritative server A | same name/type | NOERROR, policy returned
14:04 UTC | authoritative server B | same name/type | NOERROR, policy returned
14:09 UTC | resolver R after investigated repair | same name/type | NOERROR

Those observations narrow the investigation toward the recursive or intervening path. They do not prove the cause without logs, and they do not establish what every receiver experienced.

Include DNSSEC validation in the investigation

Under RFC 4035 §5.5, a validating resolver can reject data that fails DNSSEC validation even when a direct query to an authoritative server returns text. Check delegation and validation evidence, including key or signature changes, using the responsible DNS team's supported tools and logs.

A direct answer from an authority does not itself reproduce the receiver's validation decision. Likewise, one SERVFAIL does not prove a DNSSEC problem; it can have several causes.

Repair the established validation defect if there is one. Disabling validation to hide the symptom is not evidence that the intended secure resolution path recovered.

Test both UDP and TCP where relevant

DNS transport can be part of the failure. A small UDP query succeeding does not establish that a larger answer, a truncated-response retry or TCP works along the same path.

RFC 7766 RFC 7766 §5 requires general-purpose DNS implementations to support both UDP and TCP. Compare the relevant name and type over each transport when diagnosing reachability or size-related failures. Inspect the truncation flag and network evidence rather than assuming every timeout has the same cause.

A transport test is a diagnostic observation. It should not be turned into a production workaround that bypasses the intended resolver or validation path without a reviewed design.

Keep absence and failed resolution separate

Under RFC 2308 §5, negative answers can be cached, as can positive data. A newly added record may remain absent in a recursive view until the earlier negative cache state expires. That is different from an authoritative server being unreachable.

A configuration defect can also persist while the observed error remains classified as temporary. “Temporary” describes the evaluation category, not a promise that waiting will repair a broken delegation or signature.

Use the missing-record guide for confirmed absence and the publication workflow to verify the actual name and authority.

Verify recovery before reconsidering policy

Current RFC 9989 §4.10.1 leaves handling of policy-lookup DNS errors to the receiver. The evaluation guidance in RFC 9989 §5.3.6 says that required DNS queries not completed because of DNS errors do not establish a DMARC pass or fail, and the domain-owner assessment policy cannot be applied on that incomplete result. Receiver handling can still differ.

Changing p does not repair an unreachable required lookup. Restore usable resolution first, then retest the same route and inspect the new method-specific results. Preserve any business recovery decision as a separate scoped change.

The final record should identify the failed dependency, established cause, repair and receiver evidence after recovery. That makes the next intermittent failure easier to diagnose without weakening a working policy reflexively.

Keep the decision and evidence separate

For the fictional 14:02–14:09 transcript, authority success narrows but does not identify the failed component. Require the actual resolver or network finding before naming DNSSEC, transport or a particular server as the cause. RFC 8767 §4 permits qualifying stale-answer use; freshness alone is not a universal outage or recovery clock. These observations are invented teaching fixtures, not performed tests.

[ Takeaway ]

A temporary label is not proof of policy absence or a final fail. Compare authority, recursion, validation and transport evidence. Verify the intended resolution path rather than hiding the symptom.

[ By role ]

What this means for you

Choose your role for practical next steps.

IT / Mail Admin

Trace the exact failed dependency.

Authority, recursion, validation and transport can fail independently.

Next steps

  1. Retain status, name, type, time and response context.
  2. Compare authoritative and relevant recursive views.
  3. Test UDP and TCP when the evidence points to transport.

CISO / SecOps

Preserve the intended trust path.

A bypass that returns data is not equivalent to a repaired validating resolver.

Next steps

  1. Review validation and delegation changes.
  2. Keep temporary classification separate from root cause.
  3. Document any emergency deviation and its closure.

Founder / Non-technical

Track the affected workflow through recovery.

A transient label can still reflect a persistent service defect.

Next steps

  1. Name the affected mail services and owners.
  2. Require a representative post-repair test.
  3. Distinguish infrastructure recovery from policy decisions.

[ FAQs ]

Frequently asked questions

Does dmarc=temperror mean the message definitively failed DMARC?

No. It reports a likely transient evaluation error. Required DNS lookups that fail to complete do not establish an ordinary DMARC pass or fail under RFC 9989.

RFC 9989 §9.2 RFC 9989 §5.3.6

Is SERVFAIL the same as no DMARC record?

No. SERVFAIL indicates that resolution did not complete successfully. Absence requires the relevant negative-answer and discovery evidence.

RFC 1035 §4.1.1

Does a timeout prove the authoritative server is down?

No. Loss, resolver behaviour, transport, reachability and server health are possible factors. Compare the exact path with supporting logs.

Can DNSSEC cause a validating resolver to fail while direct queries return data?

Yes. The validating path can reject data that fails validation. A direct authoritative answer alone does not reproduce that security decision.

RFC 4035 §5.5

Should we disable DNSSEC validation to repair the incident?

Repair the established defect through the responsible DNS process. Bypassing validation conceals a symptom and does not verify recovery of the intended path.

Why test TCP when UDP works?

DNS requires TCP support as well, and transport or answer-size issues can affect one path differently. Test the relevant record and inspect truncation and network evidence.

RFC 7766 §5

Will changing p=reject to p=none fix an unreachable policy query?

It does not repair the failed lookup. First locate and restore the required DNS resolution path; any policy change should have its own scope and rationale.

What proves recovery from an intermittent temporary error?

Retain successful relevant DNS observations and a representative retest through the affected mail route, alongside the established cause and repair. One unrelated local query is insufficient.

[ Sources ]

Sources

  1. RFC 9989

    Sections §4.10.1 · §5.3.6 · §9.2 · §3.2.6

  2. RFC 1035

    Sections §4.1.1

  3. RFC 2308

    Sections §2.1 · §2.2 · §5

  4. RFC 4035

    Sections §5.5

  5. RFC 7766

    Sections §5

  6. RFC 8767

    Sections §4

[ Glossary ]

Glossary

DMARC Policy Record
A DNS TXT record enabling validation and expressing handling preferences and optional reporting requests for applicable domains.

RFC 9989 §3.2.6

dmarc=temperror
A likely transient evaluation error for which a later attempt might produce a final result.

RFC 9989 §9.2

Enterprise provenance

Why top financial institutions and governments retired their email security dashboards.

Traditional email authentication platforms sell you a dashboard and ask your engineers to do the labour. In high-stakes environments, manual oversight means delayed enforcement, configuration drift and unmonitored shadow domains.

EmailAuth is the agentic email provenance platform. Our agents enforce p=reject, keep third-party senders aligned and move your domains to full RFC 9989 compliance, the new DMARC standard,, with human-in-the-loop auditability.

Governments Large enterprises Tier-1 financial institutions

SaaS · Dedicated tenancy · Air-gapped on-prem · BYOK encryption

Knowledge Base