tailscale/tailscale · error

winnet.NewNetworkListManager: %v

Error message

winnet.NewNetworkListManager: %v

What it means

setPrivateNetwork failed to instantiate the COM INetworkListManager via winnet.NewNetworkListManager. Usually caused by COM being unavailable in the current process context or the required Windows networking services not running.

Source

Thrown at wgengine/router/osrouter/ifconfig_windows.go:184

	// NLM_NETWORK_CATEGORY values.
	const (
		categoryPublic  = 0
		categoryPrivate = 1
		categoryDomain  = 2
	)

	ifcGUID, err := ifcLUID.GUID()
	if err != nil {
		return false, fmt.Errorf("ifcLUID.GUID: %v", err)
	}

	// aaron: DO NOT call Initialize() or Uninitialize() on c!
	// We've already handled that process-wide.
	var c ole.Connection

	m, err := winnet.NewNetworkListManager(&c)
	if err != nil {
		return false, fmt.Errorf("winnet.NewNetworkListManager: %v", err)
	}
	defer m.Release()

	cl, err := m.GetNetworkConnections()
	if err != nil {
		return false, fmt.Errorf("m.GetNetworkConnections: %v", err)
	}
	defer cl.Release()

	for _, nco := range cl {
		aid, err := nco.GetAdapterId()
		if err != nil {
			return false, fmt.Errorf("nco.GetAdapterId: %v", err)
		}
		if aid != ifcGUID.String() {
			continue
		}

View on GitHub (pinned to 6e0912f979)

Solutions

  1. Ensure the Network List Service (netprofm) is running
  2. Retry the COM instantiation — transient COM initialization races can occur
  3. Skip the private-network category change; it is advisory, not critical
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at wgengine/router/osrouter/ifconfig_windows.go:184 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tailscale/tailscale@6e0912f979 (2026-08-18). Data as JSON: /api/errors/f4ab654a185b0d0d. Report an issue: GitHub.