kubernetes/kops · error
error extracting networks from pages: %v
Error message
error extracting networks from pages: %v
What it means
The network list succeeded but extracting network objects from the paginated response failed, indicating a malformed or SDK-incompatible response body.
Source
Thrown at upup/pkg/fi/cloudup/openstack/network.go:140
}
}
func (c *openstackCloud) ListNetworks(opt networks.ListOptsBuilder) ([]networks.Network, error) {
return listNetworks(c, opt)
}
func listNetworks(c OpenstackCloud, opt networks.ListOptsBuilder) ([]networks.Network, error) {
var ns []networks.Network
done, err := vfs.RetryWithBackoff(readBackoff, func() (bool, error) {
allPages, err := networks.List(c.NetworkingClient(), opt).AllPages(context.TODO())
if err != nil {
return false, fmt.Errorf("error listing networks: %v", err)
}
r, err := networks.ExtractNetworks(allPages)
if err != nil {
return false, fmt.Errorf("error extracting networks from pages: %v", err)
}
ns = r
return true, nil
})
if err != nil {
return ns, err
} else if done {
return ns, nil
} else {
return ns, wait.ErrWaitTimeout
}
}
func (c *openstackCloud) GetExternalNetwork() (net *networks.Network, err error) {
return getExternalNetwork(c, *c.extNetworkName)
}
func getExternalNetwork(c OpenstackCloud, networkName string) (net *networks.Network, err error) {View on GitHub (pinned to 4c8573c808)
Defensive patterns
Strategy: fallback
Validate before calling
// verify Neutron API version matches the vendored gophercloud schema ver, _ := osClient.NetworkingV2().Get(ctx).ExtractVersion() // compare against supported versions
Try / catch
ns, err := listNetworks(c, opt)
if err != nil {
log.Printf("list/extract failed, falling back to per-network Get: %v", err)
return getNetworkByIDFallback(c, opt)
} Prevention
- Align kops/Gophercloud versions with your OpenStack release
- Bypass or correctly configure proxies that may alter API responses
- Test against a staging OpenStack of the same version
- Report persistent extraction failures upstream with raw response
When it happens
Trigger: Neutron returns response bodies that don't match Gophercloud's expected networks schema (e.g. plugin extensions or a proxy/intermediary altering JSON).
Common situations: Neutron version mismatch with the vendored Gophercloud schema; custom Neutron plugins/extensions returning extra/odd fields; API gateway mangling responses.
Related errors
- error describing Network: %v
- network %q not found
- error retrieving network with id %s: %v
- error listing networks: %v
- error creating network: %v
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/df2aea8f829299f9.
Report an issue: GitHub.