5.4.6 bounce: routing loop detected
5.4.6Routing loop detectedPermanent: retrying will not help
dsn=5.4.6, status=bounced (mail for example.com loops back to myself)
What it means
X.4.6 is "Routing loop detected" in RFC 3463. A server noticed that the message has been around the same path before, usually because the Received header count crossed the hop limit (often 25 to 100) or because the server is about to send the message to itself. The example is Postfix’s exact text when an MX record for a domain it does not consider local points back at itself.
Loops come from routing that sends mail in a circle: two servers that each think the other is responsible, a forward on mailbox A to B and B back to A, or an Exchange hybrid setup where on-premises and cloud both route the domain to each other. Exchange Online reports these as 5.4.14 (hop count exceeded), which has its own page.
A loop does not fix itself, so 5.4.6 is permanent. The 4.4.6 form is rarely used. The bounce often carries a long list of Received headers that shows exactly which hosts are involved.
Likely causes
- The domain’s MX points at a server that is not configured to accept that domain as local, so it relays the mail back out to the same MX.
- Two forwarding rules point at each other, for example user@example.com forwards to user@example.net and back.
- Hybrid or migration routing where both systems send the domain to the other.
- A relay host and a smart host each configured to pass the domain to the other.
How to fix it
- Open the bounced message’s headers and read the Received lines from the bottom up; the repeated hosts are the loop.
- If the loop is on the receiving server, add the domain to its local or virtual domain list (Postfix: `mydestination` or `virtual_mailbox_domains`) so it stops relaying.
- Remove one of the forwarding rules that bounce the mail between mailboxes.
- In hybrid setups, make sure only one side treats the domain as authoritative and the other routes to it.
Checks that apply
- Email Header Analyzer Lays out every Received hop in order, which makes the repeated hosts in a loop easy to spot.
- MX Lookup Shows where the domain’s mail is supposed to go, so you can see which host relays it back.
FAQ
- How many copies of my message were sent?
- Only one travelled the loop; it was stopped when the hop limit was reached. The recipient did not get it.
- Is this the sender’s fault?
- No. Routing loops are configuration problems on the receiving side or in forwarding rules.