Suped

What is the 'cv=fail' result in ARC?

When you encounter a 'cv=fail' result in an email's ARC (Authenticated Received Chain) headers, it's a signal that something has gone wrong with the email's chain of custody. ARC was designed to solve a common problem in the world of email authentication: legitimate emails being modified by intermediaries, like mailing lists or forwarders, which in turn breaks their DMARC alignment. As Proton explains, these modifications can cause legitimate emails to appear tampered with and fail DKIM checks, leading to DMARC failure.

ARC works by creating a new, verifiable chain of trust. Each server that handles the email can add its own cryptographic seal, attesting to the authentication results it saw when it received the message. This creates a sequence of verified hand-offs.

www.badsender.com logo
Badsender says:
Visit website
ARC or Authenticated Received Chain is an email authentication protocol defined by the RFC 8617. The objective of ARC is to allow to keep the authentication results from the first 'hop' all along the mail route, even if the intermediate servers modify the message (and therefore break the SPF and/or DKIM alignment).
Suped DMARC monitor
Free forever, no credit card required
Get started for free
Trusted by teams securing millions of inboxes
Company logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logoCompany logo

Understanding the ARC-Seal header

To understand 'cv=fail', we first need to look at the ARC-Seal header. This header is added by each ARC-participating intermediary, or 'hop', in the email's journey. It contains several tags, but the most important for our discussion is the cv tag, which stands for 'chain validation'.

When a server adds its seal, it first validates the existing chain of ARC seals that came before it. The cv tag records the outcome of this validation. The possible values are pass, fail, or none. A value of none is used for the very first seal in the chain (i=1), since there is no prior seal to validate.

What does 'cv=fail' mean?

A cv=fail result is an explicit statement that the ARC chain is broken and cannot be trusted. It means that the validating server was unable to verify the cryptographic signature of the previous ARC seal in the chain. According to the protocol specification, once a chain is marked as invalid, subsequent validators should not attempt to repair or ignore the failure; they should continue to propagate the 'fail' state.

There are several reasons why this might happen:

  • Message modification. An intermediary server modified the email's content or headers in a way that invalidated a previous ARC signature. This can happen with poorly configured mailing list software.
  • Misconfigured servers. A server in the chain might have a faulty ARC implementation, creating invalid seals that the next hop cannot verify.
  • DNS issues. The public key required to validate a previous signature could not be retrieved via DNS.
  • Malicious activity. Although less common, it could indicate an attempt to forge ARC headers to bypass authentication checks.

The impact of a 'cv=fail' result

When a final receiving mail server sees an ARC chain that ends in cv=fail, it knows it cannot trust any authentication results preserved by ARC. The server will disregard the entire chain and fall back to evaluating only the most recent SPF, DKIM, and DMARC results. For forwarded mail, this often means DMARC will fail.

discuss.phplist.org logo
phpList Discuss says:
Visit website
SPF, DKIM, DMARC all pass, but there is an ARC failure which, it seems, gmail ignores but for all users of Microsoft email accounts (outlook.com, etc.) this causes our emails to go to their junk folder.

The consequence is a significantly higher likelihood of the email being sent to the spam folder or rejected outright. Some providers, like Microsoft, are known to be particularly sensitive to ARC failures. A broken ARC chain removes the layer of trust that ARC was designed to provide, making your legitimate forwarded email look suspicious and increasing its chances of landing on a blocklist or blacklist.

Why is it so hard to debug 'cv=fail'?

One of the most frustrating aspects of a cv=fail result is its lack of detail. The status tells you that the chain is invalid, but it doesn't specify *why*. Was it a hash mismatch on the body? A header change? A missing public key? The protocol itself doesn't provide a mechanism for this granular feedback, a pain point noted by developers working with email protocols.

github.com logo
GitHub says:
Visit website
It would be very good to be able to tell why Arc verification fails as currently there is no way to differentiate what failed when attempting to validate arc.

In summary, cv=fail is a critical failure in the email authentication process. It indicates that the trusted chain of custody has been broken, and as a result, the receiving server will likely treat the email with suspicion. The only way to fix it is to identify which intermediary server is breaking the chain and correct its configuration, which is often easier said than done.

Start improving your email deliverability today

Get started