kubernetes/kops · error
failed to extract dns zone pages: %s
Error message
failed to extract dns zone pages: %s
What it means
listDNSZones wraps the gophercloud zones.ExtractZones error after a successful AllPages call, i.e. the Designate API returned pages that could not be parsed into zone objects. It fires on malformed/unexpected Designate responses and is retried with backoff by the caller.
Source
Thrown at upup/pkg/fi/cloudup/openstack/dns.go:44
"k8s.io/kops/util/pkg/vfs"
)
// ListDNSZones will list available DNS zones
func (c *openstackCloud) ListDNSZones(opt zones.ListOptsBuilder) ([]zones.Zone, error) {
return listDNSZones(c, opt)
}
func listDNSZones(c OpenstackCloud, opt zones.ListOptsBuilder) ([]zones.Zone, error) {
var zs []zones.Zone
done, err := vfs.RetryWithBackoff(readBackoff, func() (bool, error) {
allPages, err := zones.List(c.DNSClient(), opt).AllPages(context.TODO())
if err != nil {
return false, fmt.Errorf("failed to list dns zones: %s", err)
}
r, err := zones.ExtractZones(allPages)
if err != nil {
return false, fmt.Errorf("failed to extract dns zone pages: %s", err)
}
zs = r
return true, nil
})
if err != nil {
return zs, err
} else if done {
return zs, nil
} else {
return zs, wait.ErrWaitTimeout
}
}
func deleteDNSRecordset(c OpenstackCloud, zoneID string, rrsetID string) error {
done, err := vfs.RetryWithBackoff(writeBackoff, func() (bool, error) {
err := recordsets.Delete(context.TODO(), c.DNSClient(), zoneID, rrsetID).ExtractErr()
if err != nil {
return false, fmt.Errorf("failed to delete dns recordset: %s", err)View on GitHub (pinned to 4c8573c808)
Solutions
- Retry; the operation already runs inside RetryWithBackoff
- Check OpenStack Designate service version compatibility with gophercloud
- Inspect the wrapped error for API response anomalies
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/openstack/dns.go:44 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/0494387c3114e304.
Report an issue: GitHub.