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

  1. Retry; the operation already runs inside RetryWithBackoff
  2. Check OpenStack Designate service version compatibility with gophercloud
  3. 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.