Intermittent connection failures where IPv6 is half-configured
Windows prefers IPv6 and will try it first. On a network with partial IPv6, that means a timeout before every connection falls back.
What you see
Everything works but slowly — a pause of several seconds before a page or a share opens, then normal speed. Common on networks where a router advertises IPv6 without a working route.
What is actually wrong
Router advertisements give the machine a global IPv6 address, so Windows treats IPv6 as usable and tries it first. There is no upstream IPv6 route, so each attempt waits for a timeout before falling back to IPv4.
Codes and articles
Fixes (2)
Change the preference, not the protocol
You can only change the client.
Confirm the diagnosis: an IPv6 address is present but nothing IPv6 is reachable.
Get-NetIPAddress -AddressFamily IPv6 | Format-Table InterfaceAlias,IPAddress,PrefixOriginTest-NetConnection ipv6.google.com -InformationLevel Detailed
See the current preference table.
Get-NetPrefixPolicy | Sort-Object Precedence -DescendingPrefer IPv4 over IPv6 without disabling IPv6.
netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 60 4This raises the precedence of IPv4-mapped addresses above native IPv6, so IPv4 is tried first. It is far better than unbinding IPv6 — several Windows components, including parts of the failover cluster and Exchange stack, expect IPv6 to exist and behave badly when it does not.
Do not disable IPv6 on the adapter, and do not set DisabledComponents to 0xff. Both are widely recommended online and both cause worse problems later.
Get-NetAdapterBinding -ComponentID ms_tcpip6 | Format-Table Name,EnabledStop the router advertising a prefix it cannot route
You control the network. This is the correct fix and it fixes every client at once.
Identify what is sending the advertisements.
Get-NetRoute -AddressFamily IPv6 | Format-Table DestinationPrefix,NextHop,InterfaceAliasEither give the network working IPv6 upstream, or turn router advertisements off entirely so clients never form a global address.
Check for rogue sources — a Windows machine with Internet Connection Sharing, or a virtualisation host bridging a guest network, will advertise a prefix nobody intended.
Re-test from a client after the lease expires, or force it.
netsh interface ipv6 delete destinationcacheipconfig /renew6
Related faults
Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.