Key Takeaways
- Even if your emails pass global standards like SPF and DKIM perfectly, Microsoft can still flag them as a “fail” using its own internal reputation filters.
- Since Microsoft’s crackdown on high-volume senders, maintaining a passive p=none DMARC policy now actively triggers implicit authentication failures (reason=001).
- If your emails are failing due to being forwarded, the old fix was setting up an Authenticated Received Chain (ARC) seal. However, with an Internet Engineering Task Force (IETF) working group draft proposing to reclassify ARC as a historic standard, you need to keep your current DKIM infrastructure flawless to prepare for the upcoming DKIM2 rollout.
- Most failures come down to domain misalignment or passive policies. Upgrading past p=none and configuring custom mail-from domains for third-party tools will fix the vast majority of your compauth headaches
You’ve set up SPF, DKIM, and DMARC, and your emails are still landing in Outlook’s junk folder. The culprit is often compauth=fail, a Microsoft-specific authentication layer that goes beyond standard global protocols. Understanding what this diagnostic signal means, why it differs from DMARC, and why it matters more than ever after the May 2025 updates is critical for maintaining business email deliverability.
What is Composite Authentication (compauth)?
Composite Authentication (compauth) is Microsoft’s proprietary authentication scoring system used by Exchange Online Protection (EOP) in Microsoft 365 and Outlook.
Unlike standard SPF, DKIM, and DMARC, which act as explicit, standards-based verification checks, compauth functions as a composite intelligence score. It combines explicit authentication results with advanced implicit signals, including sender reputation, historical interaction patterns, Microsoft’s internal spoof intelligence, and behavioral analysis.
The final evaluation result is injected into the Authentication-Results header of every inbound message processed by Microsoft 365. Depending on how the email performs against this hybrid check, the header will display one of four possible values:
- compauth=pass: The message passed both explicit authentication checks and implicit safety evaluations.
- compauth=fail: The message failed Microsoft’s composite authentication criteria and is flagged as highly suspicious.
- compauth=softpass: The message passed via implicit or reputation signals despite lacking robust explicit authentication.
- compauth=none: No composite authentication evaluation was performed on the message.
For a deeper dive into configuring email authentication for Microsoft 365 emails , see our guide on DMARC for Office 365.
compauth vs. DMARC: What’s the Difference?
A frequent source of confusion for system administrators is seeing an email pass standard DMARC verification while simultaneously triggering a compauth=fail status.
| Feature / Aspect | DMARC | Microsoft Composite Authentication (compauth) |
|---|---|---|
| Scope & Enforcement | A global, open internet standard enforced uniformly across all major mailbox providers. | A proprietary, Microsoft-exclusive security layer operating solely within Microsoft 365 and Outlook. |
| Core Evaluation Metric | Verifies that SPF and/or DKIM checks pass and explicitly align with the domain found in the visible From header. | Evaluates SPF, DKIM, and DMARC alignment plus Microsoft's proprietary reputation and intelligence signals. |
| Handling of Implicit Signals | Does not factor in external context like sending history, tenant-specific allowlists, or behavioral AI. | Heavily weighs implicit signals, including spoof intelligence and sender-recipient history. |
Because of these differences, a message can easily pass explicit DMARC validation but still return a compauth=fail status if Microsoft’s machine learning models flag it as anomalous (e.g., a newly registered domain, a sudden spike in volume, or a domain operating on a passive p=none monitoring policy).
Conversely, a message might fail explicit SPF or DKIM checks but achieve a compauth=pass if Microsoft’s spoof intelligence or a localized safe-sender history vouches for its authenticity (such as reason=130 via an ARC override or reason=201 for internally trusted M365 senders).
What are the compauth Reason Codes?
When analyzing your email headers, the compauth=fail or compauth=pass string is followed by a specific three-digit reason code. This code indicates precisely why Microsoft’s filtering engine arrived at its decision.
| Code | Result | Meaning |
|---|---|---|
| 000 | fail | Failed DMARC with a strict p=reject or p=quarantine policy enforced. |
| 001 | fail | Failed implicit authentication: missing authentication records, a passive p=none DMARC policy, an SPF soft fail (~all), or severe domain misalignment. |
| 002 | softpass | Soft pass: the message passed primarily via implicit/reputation signals rather than explicit authentication. |
| 010 | fail | Message failed anti-spoofing checks driven by Microsoft’s automated spoof intelligence. |
| 100 | pass | Passed explicit authentication (all underlying SPF, DKIM, and DMARC checks passed and aligned perfectly). |
| 109 | pass | Passed: the domain found in the SPF record or the DKIM signature successfully aligns with the visible From address. |
| 130 | pass | Passed via ARC override (a trusted Authenticated Received Chain sealer vouched for the message during a forwarding flow). |
| 201 | pass | Passed: evaluated as an internal or structurally trusted Microsoft 365 sender. |
| 601 | fail | Failed: third-party sender domain misalignment detected (the visible From address does not match the SPF or DKIM signing domain). |
Note: All reason codes are sourced directly from official Microsoft technical documentation. To rapidly diagnose your outbound messages, copy your raw email headers and paste them into the web-based Microsoft Message Header Analyzer.
Why compauth=fail Matters More After May 2025
The operational consequences of a compauth=fail result became significantly more severe following Microsoft’s May 5, 2025, enforcement rollout. Microsoft’s Sender Requirements introduced strict, automated email authentication requirements targeting high-volume senders (those distributing 5,000 or more messages per day) to consumer endpoints like Outlook.com, Hotmail, and Live.com.
Under these updated enforcement mechanisms, a compauth=fail classification translates directly to aggressive junk folder placement or outright message rejection at the gateway level. Microsoft’s filtering now treats a p=none DMARC policy as a primary trigger for reason=001, even when SPF and DKIM pass individually. Senders whose mail delivery was previously tolerated while in a passive monitoring mode now face sudden, disruptive deliverability drops across all Microsoft-managed environments.
What Causes compauth=fail?
To resolve delivery issues, you must match the specific error code found in your Authentication-Results header to its underlying root cause:
- reason=000: The sending domain has a strict p=reject or p=quarantine DMARC policy, and the message failed both SPF and DKIM verification. For detailed troubleshooting steps on fixing authentication failures, consult our guide on why DMARC fails.
- reason=001 (Standard): This is the most prevalent failure code. It indicates a domain using a passive p=none monitoring policy, a total lack of a DMARC record, an unoptimized SPF soft fail (~all), or misaligned identifier domains.
- reason=001 & reason=601 (Third-Party Senders): This occurs when an external Email Service Provider (ESP) or CRM sends messages on behalf of your brand, but signs the message using its own infrastructure domains. Because the visible From header domain disagrees with the tracking domains used by the provider, a critical alignment failure is triggered.
- reason=010: Microsoft’s spoof intelligence flags the sender’s behavior as fraudulent, consistent with phishing or domain impersonation.
How to Fix compauth=fail
Fixing a composite authentication failure requires targeted configuration changes based on the specific scenario causing the error.
Fix 1: Upgrade Your DMARC Policy Past p=none
Because a passive monitoring policy (p=none) is treated as an implicit authentication failure (reason=001), you must transition your domain toward enforcement. Work to graduate your policy safely to p=quarantine or p=reject. Moving away from a monitoring-only stance removes the vulnerability that triggers implicit failure rules. If you are concerned about blocking legitimate legacy streams during this transition, review our strategies for managing DMARC Policy Overrides.
Fix 2: Establish Precise DKIM Alignment
Configure your primary mail servers to sign all outbound messages using a unique cryptographic DKIM key. Ensure that the signing domain parameter (d=) within the DKIM header perfectly matches the root domain displayed in the visible From: header. This robust cryptographic alignment serves as the strongest possible positive signal to Microsoft’s compauth engine.
Fix 3: Configure Custom Return-Paths for Third-Party ESPs
When utilizing external platforms (such as marketing engines or support desks), do not rely on their default generic settings. Configure a custom MAIL FROM or Return-Path domain that utilizes your company’s own domain name, or ensure that the provider is fully delegated to cryptographically sign messages using your domain’s DKIM keys. This resolves identifier misalignment and eliminates reason=601 failures.
Fix 4 & The Future of Forwarding (ARC to DKIM2)
Historically, if your organizational mail flows routinely pass through mailing lists or automated forwarding chains, standard DKIM signatures break. To solve this, implementing Authenticated Received Chain (ARC) was the standard recommendation. When an intermediary server validates an incoming message and seals it using a trusted cryptographic stamp, Microsoft 365 reads the chain of custody, overriding localized failures to output a successful compauth=pass reason=130.
However, the email authentication landscape is actively shifting. On April 22, 2026, an IETF DMARC Working Group proposal (draft-ietf-dmarc-arc-to-historic-00) proposed reclassifying ARC as a historic standard. This is a working group Internet-Draft, not a finalized RFC; ARC (RFC 8617) remains an active protocol.
The lessons from ARC are being natively folded into the emerging DKIM2 specification, which addresses broken signatures during forwarding and DKIM replay attacks. Under the latest May 17, 2026 IETF draft (draft-ietf-dkim-dkim2-spec-02), each system that touches a message records changes and appends its own signature to an unyielding chain of custody.
What this means for you right now:
- Keep ARC active for now: Microsoft still uses reason=130 (ARC override) to pass forwarded mail, so do not rip out your Microsoft Trusted ARC Seal setup quite yet.
- Prepare for DKIM2: Some deployment activity at major mailbox providers may begin in late 2026, though the specification remains in early draft stages. Because DKIM2 keys will use your existing DNS record structure, your best defense against future compauth failures is ensuring your current DKIM foundation is flawless. Eliminate leftover selectors and ensure proper key rotation.
Fix 5: Leverage M365 Spoof Intelligence Allow Entries
For internal applications, legacy on-premise appliances, or highly specialized legitimate sender profiles that trigger automated machine-learning false positives (reason=010), Microsoft 365 administrators can manually override the algorithm. Navigate to the Microsoft 365 Defender portal, open the Spoof Intelligence insight console, and append an explicit allow entry to the Tenant Allow/Block List for that specific sender profile.
How to Read compauth in Email Headers
Locating and diagnosing these values requires extracting the raw, internet-routing headers from an affected message.
- Extract the Headers: Within the desktop version of Outlook, open the target email in a dedicated window and navigate to File > Properties > Internet headers. Alternatively, if you are an administrator troubleshooting a broader delivery problem, instruct users or use admin logs to copy the raw header text and paste it directly into the Microsoft Message Header Analyzer (MHA) at mha.azurewebsites.net for an easily scannable, parsed view.
- Isolate the Relevant Line: Search the parsed text for the specific block labeled Authentication-Results. Look closely for the phrase compauth=, which will immediately be followed by its evaluation status (pass, fail, or softpass) and its corresponding reason= code.
- Cross-Reference the Data: Do not view the composite authentication result in a vacuum. Check the adjacent parameters within that exact same header line, specifically looking at the individual spf=, dkim=, and dmarc= results. Comparing these explicit values side-by-side against the compauth reason code reveals exactly which check failed or which implicit signal triggered the junk folder routing.
How Do I Prevent compauth=fail Errors for Good?
Manually analyzing headers and coordinating alignment across a dozen third-party vendors can overwhelm internal IT teams. PowerDMARC simplifies this process by providing comprehensive visibility and automated management tools, helping you resolve compauth=fail errors and keep your email authentication records clean.
Start a free DMARC trial today to gain clear visibility into your Microsoft 365 delivery streams, eliminate alignment errors, and safely transition your domain to an enforced DMARC policy.
Frequently Asked Questions
What does compauth=fail mean in email headers?
It indicates that Microsoft’s Exchange Online Protection system evaluated the inbound message and rejected it based on a combination of explicit authentication protocols (SPF, DKIM, DMARC) and implicit threat intelligence signals (sender reputation, spoof intelligence, history).
What is the difference between compauth and DMARC?
DMARC is an open, global internet protocol used by all mailbox providers to check identifier alignment. compauth is a proprietary, Microsoft-exclusive evaluation layer that takes standard DMARC results and factors in additional real-time reputation and behavioral metrics.
Why does compauth fail even when SPF and DKIM pass?
This occurs frequently if your domain is configured with a passive p=none DMARC policy, which Microsoft’s updated system treats as a deliverability risk. It can also fail if Microsoft’s internal spoof intelligence flags the sender’s transactional behavior or sending history as anomalous.
What does compauth fail reason=001 mean?
Reason code 001 means the message failed Microsoft’s implicit authentication criteria. This is typically caused by missing DMARC or SPF records, identifier misalignment, or maintaining a passive p=none DMARC policy rather than advancing to enforcement.
How do I fix compauth=fail in Microsoft 365?
Ensure that your SPF and DKIM domains align perfectly with your visible From header, upgrade your DMARC policy from p=none to an enforcement state like p=quarantine or p=reject, and configure trusted ARC seals if your mail flows involve automated forwarding.
Does compauth=fail cause emails to go to junk in Outlook?
Yes. Following strict security enforcements, a compauth=fail status serves as a direct trigger for the EOP filtering engine to route inbound messages straight to the junk folder or reject them entirely at the perimeter.
- How to Split a DKIM Record - June 5, 2026
- compauth=fail: Microsoft Composite Authentication Explained - June 1, 2026
- Is Windows Defender Enough for Small Business Security? - May 14, 2026
