Microsoft Teredo Tunneling Adapter Code 10: what it means and how to fix it

Networking equipment with Ethernet cables connected

Quick answer: The Microsoft Teredo Tunneling Adapter is a virtual adapter for Teredo, an old way of reaching IPv6 through an IPv4 router. Microsoft has deprecated Teredo and says it has been disabled since Windows 10, version 1803, so a Code 10 on it usually means Teredo, or IPv6 tunnel interfaces in general, are switched off. If your internet works and no game or app complains, you can leave it alone. If something needs Teredo, check its state with netsh interface teredo show state, make sure IPv6 tunnels aren’t disabled in the registry, set Teredo back to client mode and restart.

Networking equipment with Ethernet cables connected

Does Code 10 on Teredo matter?

Device Manager shows This device cannot start. (Code 10) when a driver in the device’s stack fails to start. For a physical network card that’s serious. For Teredo it’s often just the visible side of a setting: when Teredo is turned off, its virtual adapter has nothing to start, and on some PCs it shows the yellow warning instead of disappearing.

Teredo is rarely needed today. Microsoft’s list of deprecated Windows features includes it along with 6to4 and ISATAP and tells users to rely on native IPv6 instead. The one place people still meet it is Xbox networking on Windows: the Xbox app and the Xbox Networking page in Settings can report that Teredo is unable to qualify, which can affect party chat and some multiplayer games. If that’s you, work through the steps below. If not, see If you don’t need Teredo.

If you actually have no internet, Teredo is not the cause. Start with Ethernet doesn’t have a valid IP configuration instead.

Step 1: Check the Teredo state

Open Command Prompt as administrator and run:

netsh interface teredo show state

Look at the Type and State lines. A type of disabled explains the Code 10. A type of client with a state such as qualified or dormant means Teredo is set up and the problem is elsewhere, usually the registry setting in Step 2 or a firewall or router blocking it. In PowerShell, Get-NetTeredoConfiguration shows the same settings.

Step 2: Check whether IPv6 tunnels are turned off

Privacy tools, “network tweak” scripts and some guides switch off IPv6 or its tunnels with a registry value called DisabledComponents. Teredo can’t start while its interface type is disabled there. Check the value from the same admin window:

reg query HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters /v DisabledComponents

If Windows says it can’t find the value, it isn’t set, which is the default, and you can skip to Step 3. Otherwise compare the number with Microsoft’s documented values:

ValueWhat it doesTeredo can run?
0x0 (or missing)Default: all IPv6 components onYes
0x20Prefer IPv4 over IPv6, Microsoft’s recommended alternative to disabling IPv6Yes
0x1Disables IPv6 on all tunnel interfacesNo
0x11Disables IPv6 on tunnel and non-tunnel interfaces (except loopback)No
0xFFDisables IPv6No

The value is a set of bits, and Microsoft lists one of them as Disable Teredo interfaces (the fourth bit, 0x8). Any value that includes it or the tunnel bit keeps Teredo off.

Before you change it: Microsoft doesn’t recommend disabling IPv6 or its components, because some Windows features may stop working, so going back to the default is generally safe. On a work or school PC, though, the value may have been set on purpose, so ask IT first. If you only wanted Windows to favour IPv4, use 0x20 rather than disabling anything. To return to the default, run the command below and restart:

reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters /v DisabledComponents /t REG_DWORD /d 0 /f

If you prefer editing the key by hand or get an access error, see fixing registry access errors.

Step 3: Turn Teredo back on

In the admin Command Prompt, reset Teredo to its default settings, then check the state again:

netsh interface teredo set state type=default
netsh interface teredo show state

Microsoft’s documentation describes the defaults inconsistently, and some users find that type=default still leaves Teredo disabled. If the type still says disabled, set it to client mode explicitly:

netsh interface teredo set state type=client servername=default

Restart the PC, then open Device Manager and check whether the warning has gone. The PowerShell equivalent is Set-NetTeredoConfiguration -Type Client.

Step 4: Remove and reinstall the adapter

If Teredo is on but the adapter still shows Code 10, a stale or duplicate copy of the device may be stuck. Many users report that this clears it:

  1. Open Device Manager, select View and turn on Show hidden devices.
  2. Expand Network adapters. Right-click every Microsoft Teredo Tunneling Adapter entry (older PCs may show Teredo Tunneling Pseudo-Interface) and choose Uninstall device.
  3. Restart. Windows normally recreates the adapter when Teredo is enabled.
  4. If it doesn’t come back, select Action > Add legacy hardware, choose to install hardware you select manually from a list, pick Network adapters, then Microsoft and Microsoft Teredo Tunneling Adapter.

Updating the driver doesn’t usually help here. Teredo uses a driver built into Windows, so there’s no newer version to download.

If you don’t need Teredo

You can simply ignore the warning; it doesn’t affect a normal internet connection. If you’d rather make Teredo’s off state explicit, run netsh interface teredo set state disabled from an admin Command Prompt. You can undo it any time with the Step 3 commands. Avoid disabling IPv6 itself to hide the error, since Microsoft warns that some Windows components might not function.

Official sources:

How we write our guides: read our editorial policy.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *