Fix it now
0x80070034 is Win32 error 52, ERROR_DUP_NAME: you were not connected because a duplicate name exists on the network. It comes from the NetBIOS-over-TCP/IP layer while a session is being set up, not from DNS and not from the share. Either two devices are claiming the same name, or the client’s own Winsock provider chain is broken. Share permissions have nothing to do with it.
nbtstat -n
nbtstat -a FILESRV
netsh winsock show catalog > %USERPROFILE%\Desktop\winsock-before.txt
- Read the state column in the
nbtstat -noutput. Microsoft documents Conflict as meaning a duplicate computer name has registered the same service; Registered is healthy. - From a second machine, run
nbtstat -a <name>to see who else answers to it and with which MAC address, then rename or reconfigure whichever device should not have it. - If no name is in Conflict, suspect the socket layer instead: look for 0x8007277A, and for entries in the catalog whose DLL you cannot find on disk.
- Reset the stack only after writing down any static addressing:
netsh winsock reset, thennetsh int ip reset c:\resetlog.txt, then reboot. - Retest the path that failed with
Test-NetConnection FILESRV -Port 445before touching the share itself.
netsh int ip reset has the same effect as removing and reinstalling TCP/IP and rewrites the Tcpip and DHCP parameter keys, so a machine with a static address comes back on DHCP. The log file argument records everything it changed.
If names read Registered and port 445 answers, you are done. If not, the next section separates the name clash from the socket fault, which look identical from the desktop.
Why it happens
A Windows machine with NetBIOS over TCP/IP enabled registers a set of names on its segment when the network comes up: its computer name for the workstation service, the same name again for the server service, and the workgroup or domain name. Registration is a claim, and the claim can be objected to. Where another device already holds one of those names, the registration fails and session set-up that would have used the name fails with error 52.
It is worth being precise about what a NetBIOS name is, because a lot of folklore is not. The name is fifteen characters; Microsoft reserves the sixteenth byte to identify which service on the device the name refers to. Windows does not permit computer names longer than fifteen characters in the first place, so two Windows machines cannot collide by having long names truncated into each other. Real clashes come from somewhere else: a cloned or imaged machine that was never renamed, a NAS or appliance configured with a name already in use, or a stale registration left in WINS that nothing has cleared.
The second family of causes has nothing to do with names at all. Every socket call passes through the Winsock catalog, an ordered list of service providers. If an entry points at a DLL that has been removed, or a layered provider was left behind by software that uninstalled badly, socket creation fails part-way. That surfaces as 0x8007277A – Winsock error 10106, WSAEPROVIDERFAILEDINIT, which Microsoft describes as the provider’s DLL failing to load or its start-up function failing. Because the break sits below the protocol, it takes down anything that opens a socket, not just file sharing.
Two devices are registering the same NetBIOS name
You have this one if nbtstat -n lists a name whose state reads Conflict, and the System log carries NetBT entries about a duplicate name.
- From another machine on the segment, run
nbtstat -a <name>to see who answers and with which MAC address. - Decide which device keeps the name, then rename the other with
Rename-Computer -NewName <name> -Restart, or reconfigure the appliance. - Rename a domain member while it is on the domain network, so its computer account follows the change.
- After the reboot, run
nbtstat -non both and confirm every name reads Registered.
If nobody answers the nbtstat -a, the registration is stale rather than taken. Clear it with nbtstat -R and nbtstat -RR, flush DNS, and delete any obsolete record in DNS or WINS.
The Winsock catalog or the TCP/IP stack is damaged
You have this one if 0x8007277A appears, netsh winsock show catalog names providers whose DLL is not on disk, and unrelated applications also fail to connect.
- Keep a copy of the catalog first:
netsh winsock show catalog > %USERPROFILE%\Desktop\winsock-before.txt. - Reset it:
netsh winsock reset, which Microsoft documents as returning the catalog to a clean state. - Write down any static addressing, then run
netsh int ip reset c:\resetlog.txt. - Reboot, re-enter the static configuration, and retest before changing anything else.
VPN clients and older security products install layered providers. If the catalog fills up with broken entries again after a reset, remove the product with its own tool rather than resetting repeatedly.
The far end is genuinely unreachable
You have this one if 0x800704CF, 0x800704D0 or 0x800704D1 accompany the failure, and Test-NetConnection fails on the port as well as on ping.
- Confirm the client’s own addressing with
ipconfig /all. - Check the default route with
Get-NetRoute -DestinationPrefix 0.0.0.0/0, watching for a VPN adapter with a lower metric taking it over. - Test the port on its own:
Test-NetConnection FILESRV -Port 445. - If the port answers from one subnet and not another, the fault is a firewall or an access list in between, not a name.
Microsoft prints the same message text – the network location cannot be reached – for all three of these codes. The distinction is in their names: network unreachable, host unreachable, protocol unreachable.
Two sets of credentials to one server
You have this one if One server fails while everything else works, and the failure follows a credential prompt or a mapped drive reconnecting at logon.
- List what is connected:
net use. - Drop everything and reconnect once with a single identity:
net use * /delete, then map again. Save open files first. - Where a service or scheduled task holds a second session under another account, run it as the same user.
This is a near neighbour rather than the same fault: Windows reports it as error 1219, ERROR_SESSION_CREDENTIAL_CONFLICT – multiple connections to a server by the same user under more than one user name are not allowed. If that is the code you have, this is the cause; if you have 0x80070034, it is not.
Full reference
Reading the symptom to find the layer
| What you observe | Where the fault sits |
|---|---|
A name in Conflict state in nbtstat -n |
A genuine NetBIOS name clash on the segment |
| Every socket application fails, not just file sharing | Winsock catalog damage – expect 0x8007277A |
| One server fails right after a credential prompt | Two credential sets to one server, which reports 1219 rather than 52 |
| The name resolves but nothing answers on the port | Routing or filtering – expect 0x800704CF, 0x800704D0 or 0x800704D1 |
| The long name works and the short name does not | Different paths: DNS and TCP for one, NetBIOS for the other |
Command reference
| Command | What it does |
|---|---|
nbtstat -n |
Lists the names this machine has registered and their state; Registered or Conflict |
nbtstat -a <name> |
Asks a remote host for its NetBIOS name table |
nbtstat -c |
Shows the NetBIOS name cache and the addresses names resolved to |
nbtstat -R |
Purges the name cache and reloads the pre-tagged entries from the Lmhosts file |
nbtstat -RR |
Releases this machine’s names and re-registers them with WINS |
netsh winsock show catalog |
Prints the ordered list of Winsock service providers |
netsh winsock reset |
Resets the Winsock catalog to a clean state; needs a reboot |
Test-NetConnection <host> -Port 445 |
Confirms whether the SMB port is reachable, separately from name resolution |
What a reset actually rewrites
Two commands get run together as though they were one. They are not. netsh winsock reset returns the Winsock catalog to defaults and removes layered providers, which is what you want when 0x8007277A is in play. netsh int ip reset is heavier: Microsoft describes it as having the same effect as removing and reinstalling TCP/IP, and it overwrites SYSTEM\CurrentControlSet\Services\Tcpip\Parameters and SYSTEM\CurrentControlSet\Services\DHCP\Parameters. Both need a restart before anything changes.
Record static addresses, gateways and DNS servers before running netsh int ip reset. The reset rewrites the interface configuration, and a server that comes back on DHCP with no reservation is a worse problem than the one you started with.
Turning NetBIOS off instead
In a network that resolves everything through DNS, disabling NetBIOS over TCP/IP removes this whole class of fault rather than fixing it, and it is a reasonable piece of cleanup. The setting is per adapter, under the IPv4 properties, Advanced, WINS tab. Test before you commit: some older line-of-business applications, backup agents, multifunction devices and network browsing still depend on it, and the failures that follow are quiet ones.
When the short name fails and the long name works
They take different paths, which is the whole explanation. The fully qualified name is resolved by DNS and connects straight over TCP. The short name can still be claimed and answered through NetBIOS on the local segment, so a clash on the short name leaves the DNS path completely untouched. That asymmetry is a useful diagnostic: if \\FILESRV\share fails and \\FILESRV.example.local\share works, you are looking at a name registration problem, not a share, a firewall or a permission.
When none of it fits
- Check for a duplicate IP address on the segment, which produces resets and refusals that look exactly like a name clash.
- Check whether the client and the server are on the same subnet. NetBIOS name registration is a broadcast claim and does not cross a router without WINS.
- Look at the System log on both machines for NetBT events at the moment of the failure; they name the conflicting address.
- On a machine that was imaged, confirm it has a unique computer name and, on a domain, a healthy computer account rather than one that was reused.
Every code this article covers
| Code | What it points at | Source |
|---|---|---|
0x80070034 |
Win32 error 52, ERROR_DUP_NAME: you were not connected because a duplicate name exists on the network | Microsoft Learn |
0x8007277A |
Winsock error 10106, WSAEPROVIDERFAILEDINIT: a service provider failed to initialise because its DLL could not be loaded or its start-up function failed | Microsoft Learn |
0x800704CF |
Win32 error 1231, ERROR_NETWORK_UNREACHABLE: the network location cannot be reached | Microsoft Learn |
0x800704D0 |
Win32 error 1232, ERROR_HOST_UNREACHABLE: Microsoft prints the same message as for 1231, and the distinction is in the name – the host rather than the network | Microsoft Learn |
0x800704D1 |
Win32 error 1233, ERROR_PROTOCOL_UNREACHABLE: again the same message text, with the protocol named as the unreachable part | Microsoft Learn |
Confirm the fix worked
nbtstat -non both machines shows every name Registered and none in Conflict.Test-NetConnection FILESRV -Port 445returns true from the client subnet, not only from the server.- The share opens by short name and by fully qualified name, both without a credential prompt.
- Unrelated network applications work, which is what tells you a Winsock reset actually took.
- After a reboot, the System log carries no new NetBT duplicate-name entries and static addressing is still in place.
Questions people ask about this
Does fixing this cost anything?
No. Renaming a machine, resetting Winsock and clearing stale registrations are all built into Windows. 0x80070034 is never a licensing fault.
Can I disable NetBIOS over TCP/IP instead?
Often yes, and in a DNS-only network it is reasonable cleanup. Set it per adapter under IPv4 properties, Advanced, WINS. Test first: some older applications, backup agents and network browsing still depend on it.
Is netsh winsock reset safe on a production machine?
The reset itself is supported and documented, but it removes layered providers installed by VPN and security products and it needs a reboot. Schedule it, and have those installers to hand.
Two servers have names that start the same. Is that the clash?
Not between two Windows machines. Windows does not permit computer names longer than fifteen characters, so there is nothing to truncate into a collision. Look instead at cloned machines, appliances and NAS devices, which can be given any name their firmware accepts.
Why does the error mention a duplicate when nothing is duplicated?
Because the error is raised by the layer that registers names, and a failed registration and a rejected one look the same from above. If nbtstat -n shows nothing in Conflict, treat the message as the layer reporting a failure rather than as a literal statement, and check the Winsock catalog next.
