kubernetes/kops · error

error retrieving network with id %s: %v

Error message

error retrieving network with id %s: %v

What it means

After successfully resolving the subnet, fetching its parent network by NetworkID failed. The GetNetwork call is retried; failure means the network could not be read even though the subnet references it.

Source

Thrown at upup/pkg/fi/cloudup/openstack/network.go:88

	}
}

func (c *openstackCloud) FindNetworkBySubnetID(subnetID string) (*networks.Network, error) {
	return findNetworkBySubnetID(c, subnetID)
}

func findNetworkBySubnetID(c OpenstackCloud, subnetID string) (*networks.Network, error) {
	var rslt *networks.Network
	done, err := vfs.RetryWithBackoff(readBackoff, func() (bool, error) {
		subnet, err := c.GetSubnet(subnetID)
		if err != nil {
			return false, fmt.Errorf("error retrieving subnet with id %s: %v", subnetID, err)
		}

		netID := subnet.NetworkID
		net, err := c.GetNetwork(netID)
		if err != nil {
			return false, fmt.Errorf("error retrieving network with id %s: %v", netID, err)
		}
		rslt = net
		return true, nil
	})
	if err != nil {
		return nil, err
	} else if done {
		return rslt, nil
	} else {
		return nil, wait.ErrWaitTimeout
	}
}

func (c *openstackCloud) GetNetwork(id string) (*networks.Network, error) {
	return getNetwork(c, id)
}

func getNetwork(c OpenstackCloud, id string) (*networks.Network, error) {

View on GitHub (pinned to 4c8573c808)

Defensive patterns

Strategy: retry

Try / catch

net, err := findNetworkBySubnetID(c, subnetID)
if err != nil {
    var gerr gophercloud.ErrUnexpectedResponseCode
    if errors.As(err, &gerr) && gerr.Actual == 403 {
        return fmt.Errorf("no RBAC access to subnet's network: %w", err)
    }
    return err
}

Prevention

When it happens

Trigger: The network referenced by subnet.NetworkID cannot be fetched: 404 (network deleted), 403 (no access), or API error.

Common situations: Subnet's parent network deleted between the two calls; shared-network RBAC denies cross-project network read; Neutron outage.

Understand the failure class

Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.

Related errors


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/41907174c7578dfc. Report an issue: GitHub.