Exchange ServerTroubleshooting

451 4.4.0 DNS query failed: fixing Exchange queues stuck in Retry

Queues stuck in Retry with 451 4.4.0 DNS query failed? Find the DNS servers transport really uses, test lookups from the Exchange server, and fix the resolver or connector.

When Exchange can't work out where to send a message, the delivery queue goes to Retry with 451 4.4.0 DNS query failed and the mail waits there until it expires. The cause is nearly always DNS, but not always the DNS servers you think transport is using. In this post I'll show how to find the resolver Exchange really uses, test lookups the same way, and fix it for good on Exchange Server SE, 2019 or 2016.

Errors this guide fixes

  • 451 4.4.0 DNS query failedQueue Viewer / Get-Queue LastError
  • 451 4.4.0 DNS query failed. The error was: SMTPSEND.DNS.NonExistentDomain; nonexistent domainGet-Queue LastError
  • DNS query failed with error InfoNoRecordsGet-Queue LastError
  • 4.4.0 DNS query failedTransport queue (mail stuck in Drafts)
How this guide is organised: Symptoms → Why it happens → How to fix it → Verify the fix → Prevent it next timeFlow diagram of the article's sections in reading order: 1. Symptoms. 2. Why it happens. 3. How to fix it (5 steps: Read the failing queues; See which DNS servers transport uses; Test the lookup the way transport does; Fix the resolver path; Restart transport and retry the queues). 4. Verify the fix. 5. Prevent it next time. Toolbox: nslookup, Get-Queue, Resolve-DnsName, ExternalDNSServers, LastError.1Symptoms2Why it happens3How to fix it4Verify the fix5Prevent it nexttime1Read the failingqueues2See which DNSservers transport…3Test the lookup theway transport does4Fix the resolverpath5Restart transportand retry the queu…TOOLBOXnslookupGet-QueueResolve-DnsNameExternalDNSServersLastErrorHow this guide is organised: Symptoms → Why it happens → How to fix it → Verify the fix → Prevent it next timeFlow diagram of the article's sections in reading order: 1. Symptoms. 2. Why it happens. 3. How to fix it (5 steps: Read the failing queues; See which DNS servers transport uses; Test the lookup the way transport does; Fix the resolver path; Restart transport and retry the queues). 4. Verify the fix. 5. Prevent it next time. Toolbox: nslookup, Get-Queue, Resolve-DnsName, ExternalDNSServers, LastError.1Symptoms2Why it happens3How to fix it1Read the failing queues2See which DNS servers transport uses3Test the lookup the way transport does4Fix the resolver path5Restart transport and retry the queues4Verify the fix5Prevent it next timeTOOLBOXnslookupGet-QueueResolve-DnsNameExternalDNSServersLastError
At a glance: how this guide is organised · 5 fix steps · 5 key tools

Symptoms#

Mail to one or more outside domains isn't arriving, and there's no NDR yet. In Queue Viewer or the Exchange Management Shell, the queue for that destination is in Retry with a LastError such as:

Text
451 4.4.0 DNS query failed
451 4.4.0 DNS query failed. The error was: SMTPSEND.DNS.NonExistentDomain; nonexistent domain
... DNS query failed with error InfoNoRecords

The scope tells you where to look:

  • Every external domain is queuing: the problem is your DNS path.
  • One domain is queuing while others flow: usually that domain's DNS, or an internal zone that shadows it.
  • Hybrid: the next hop is yourtenant.mail.onmicrosoft.com, so internal DNS can't resolve the Microsoft 365 routing domain.
  • Internal mail stays in Drafts and the transport queue shows 4.4.0 DNS query failed. Microsoft documents this for Exchange 2013 and 2016 servers whose network adapter isn't set to register its addresses in DNS.

Left alone, senders get a delay notification after four hours and a 550 4.4.7 QUEUE.Expired NDR after two days (the defaults).

Why it happens#

Transport looks up the MX records of the destination domain, then the address records of those hosts. Which DNS servers it asks is a transport setting, not necessarily what nslookup uses:

  • By default, the Transport service uses the DNS servers configured on the network adapter for internal and external lookups alike, including outbound remote mail routing.
  • You can give each server a fixed list of external DNS servers (ExternalDNSServers), but a send connector only uses it when Use the external DNS lookup settings on servers with transport roles (UseExternalDNSServersEnabled) is on.
  • The adapter settings can point at one specific adapter GUID. After a NIC replacement or VM move, that adapter may no longer exist.

Typical root causes: domain controllers without working forwarders or root hints, a firewall blocking UDP or TCP 53, stale addresses in ExternalDNSServers, a public resolver mixed in with internal ones on the NIC (internal names then fail intermittently), or an old internal zone or conditional forwarder for a partner's domain. For single domains, Microsoft also notes that some remote DNS servers ignore AAAA (IPv6) queries or answer them in an unexpected way.

How to fix it#

1. Read the failing queues#

PowerShell
Get-Queue -Server EX01 | Where-Object { $_.LastError -like "*DNS query failed*" } |
    Format-List Identity, DeliveryType, NextHopDomain, Status, MessageCount, LastError

2. See which DNS servers transport uses#

PowerShell
Get-TransportService EX01 | Format-List Name, *DNS*
Get-SendConnector | Format-List Name, AddressSpaces, DNSRoutingEnabled, SmartHosts, UseExternalDNSServersEnabled
Get-NetAdapter | Format-Table Name, InterfaceGuid, Status
Get-DnsClientServerAddress | Format-Table InterfaceAlias, AddressFamily, ServerAddresses

Check that ExternalDNSAdapterGuid and InternalDNSAdapterGuid are either all zeros (all adapters) or match a current InterfaceGuid, and that every DNS server on the adapter, including any IPv6 entries, actually answers.

3. Test the lookup the way transport does#

From the Exchange server, query the same DNS server transport uses:

PowerShell
$dns = "10.0.0.10"
Resolve-DnsName -Name fabrikam.com -Type MX -Server $dns -DnsOnly
Resolve-DnsName -Name mail.fabrikam.com -Type A -Server $dns -DnsOnly
Resolve-DnsName -Name mail.fabrikam.com -Type AAAA -Server $dns -DnsOnly
Resolve-DnsName -Name fabrikam.com -Type MX -Server $dns -TcpOnly

Good looks like this: the MX query returns NameExchange and Preference values, the A query returns an address, and the AAAA query answers quickly. An empty answer is fine; a timeout is not. The -TcpOnly query proves TCP 53 is open for larger responses. Then repeat against a public resolver: if it works there but not internally, the problem is yours; if it fails everywhere, it's the remote domain.

4. Fix the resolver path#

  • All domains failing: repair the DNS servers themselves (forwarders or root hints, and firewall rules for UDP and TCP 53). Keep the Exchange server's NIC pointing only at internal Active Directory DNS servers.
  • Dedicated resolvers for internet lookups: set them per server and switch the internet connector over, which is the change Microsoft's article describes:
PowerShell
Set-TransportService EX01 -ExternalDNSAdapterEnabled $false -ExternalDNSServers 10.0.0.53,10.0.1.53
Set-SendConnector "Internet" -UseExternalDNSServersEnabled $true
  • Adapter GUID mismatch: in the Exchange admin center open Servers › Servers › (your server) › DNS lookups and select the current adapter, or all adapters, for external and internal lookups.
  • One domain failing: tell the remote admins. Microsoft's documented workaround is a send connector for just that domain that uses their mail server's IP address as a smart host, with smart host authentication set to None, so no DNS lookup is needed. Remove it once their DNS is fixed, because IP addresses change:
PowerShell
New-SendConnector -Name "Temp - fabrikam.com" -AddressSpaces "fabrikam.com" -DNSRoutingEnabled $false `
    -SmartHosts 203.0.113.25 -SmartHostAuthMechanism None -SourceTransportServers EX01

5. Restart transport and retry the queues#

PowerShell
Restart-Service MSExchangeTransport
Get-Queue -Server EX01 | Where-Object { $_.Status -eq "Retry" } |
    ForEach-Object { Retry-Queue -Identity $_.Identity }

The restart clears results transport cached from the failed lookups. If you added a connector, use Retry-Queue -Identity "EX01\fabrikam.com" -Resubmit $true so the messages are routed again through the new path.

Watch out: Don't "fix" this by adding public DNS servers to the NIC of a domain-joined Exchange server. Active Directory lookups then fail intermittently and internal routing breaks. Use ExternalDNSServers for internet lookups instead.

Verify the fix#

  • Get-Queue shows the queue gone, or Ready with a falling MessageCount and no LastError.
  • The Resolve-DnsName tests from step 3 succeed over UDP and TCP against the resolver transport uses.
  • Message tracking shows the messages leaving, with the remote server's 250 acceptance in RecipientStatus:
PowerShell
Get-MessageTrackingLog -Server EX01 -EventId SEND -Recipients user@fabrikam.com -Start (Get-Date).AddHours(-2) |
    Format-Table Timestamp, EventId, Recipients, RecipientStatus -AutoSize

Prevent it next time#

  • Monitor DNS forwarders, and document firewall rules for DNS, including TCP 53.
  • After NIC changes, VM migrations or IP changes, re-check Get-TransportService | Format-List Name, *DNS*.
  • Review internal zones and conditional forwarders for partner domains you no longer host.
  • Alert on queues that stay in Retry for more than 30 minutes, long before the 4.4.7 NDR. If DNS resolves but connections fail, continue with 441 4.4.1 and 421 4.4.2: stuck outbound queues.

References#

Written and checked against current Microsoft Learn documentation. Test changes with a pilot group before rolling them out to everyone, and if an admin center path has moved since, search for the setting name instead.

Spotted a mistake, or did this fix work differently for you? Email me or message me on LinkedIn — corrections are credited in the article.

Written by

Omer Eltayeb

Intune Subject Matter Expert in Cairo, Egypt, former Microsoft Cloud Solutions Architect, Microsoft Certified Trainer and Microsoft Innovative Educator Expert (2024–26) and Microsoft Elevate Educator Expert (2026–27). I share practical, step-by-step guides, study plans, scripts and toolkits for Microsoft Intune, Configuration Manager, Microsoft Entra ID, Microsoft Defender, Exchange and Microsoft 365 with the community.

Microsoft Certified Trainer (MCT) 2026Microsoft Innovative Educator Expert 2025–2026Microsoft Elevate Educator Expert 2026–2027ISC2 Certified Information Systems Security Professional (CISSP)Microsoft 365 Certified: Enterprise Administrator Expert (MS-102)