exchange-online error

Exchange Online 550 5.4.8 — MX Failed MTA-STS Validation

Exchange Online rejected the transport path because the destination MX host did not match the MX identities permitted by the domain’s MTA-STS policy.

5.4.8 means the recipient domain publishes an MTA-STS policy in enforce mode, and the MX host Exchange Online tried to deliver to does not match any host pattern in that policy. Microsoft honoured the policy and refused to deliver to a non-matching exchanger.

Reviewed 2026-09-02. Provider wording and requirements change; the provider reference below is authoritative.

Most common causes

  • The published MTA-STS policy does not include the active MX hostname
  • MX records changed but the MTA-STS policy was not updated
  • A backup MX or failover host is missing from policy
  • Cached policy and current DNS describe different transport paths

What to verify next

  1. Run Mail Transport Security for the destination domain
  2. Compare every active MX hostname with the published MTA-STS mx patterns
  3. Review recent MX, gateway or failover changes
  4. Publish a consistent policy and allow normal policy/DNS cache propagation before retesting

The policy and the MX records disagree

MTA-STS lets a domain declare which mail exchangers senders should accept and require TLS to them. The policy file lists host patterns; if a published MX record points somewhere the policy does not list, conforming senders refuse it. This is exactly the failure MTA-STS is designed to produce when infrastructure changes without policy updates.

The usual sequence: MX records were changed for a migration or a new filtering service, the mta-sts.txt policy was not updated, and senders that honour the policy — Microsoft, Google — began rejecting while senders that ignore it continued delivering.

Verify the mismatch

Run Mail Transport Security for the recipient domain. It fetches the policy, lists every MX host and shows which ones match. Any unmatched host is the cause.

Also check the policy id in the _mta-sts DNS record: if the policy file was updated but the id was not changed, senders keep using their cached copy of the old policy for its max_age.

  • Compare each MX hostname against the policy’s mx patterns.
  • A changed policy needs a changed id in DNS.
  • Backup and failover MX hosts must be listed too.

Fix on the recipient side

Update the policy file to include every active exchanger using wildcard patterns where appropriate, change the id in the DNS record, and confirm the file is served correctly over HTTPS on the mta-sts subdomain. Consider testing mode with TLS-RPT for a period after any MX change.

If you are the sender, there is nothing to change; forward the NDR to the recipient organization.

Best diagnostic path

Known limits

  • Policy caching means the fix becomes visible to each sender only after its cached copy expires.
  • Only the recipient domain can correct its policy.

Common questions

Why do some senders still deliver?

They do not implement MTA-STS. Microsoft and Google do, so their mail fails first.

We updated the policy file. Still failing.

Change the id in the _mta-sts TXT record too, or senders keep the cached old policy.

Should we switch to testing mode?

Temporarily, with TLS-RPT enabled, so senders report mismatches without refusing delivery while you fix them.

Why the exact message matters

The same status family can be triggered by different conditions, and providers frequently add diagnostic text that narrows the issue. Use the complete rejection text rather than treating the numeric code as a complete diagnosis.

Provider reference

For the provider-defined meaning and current requirements, review Microsoft Exchange Online NDR reference.