kubernetes/kops · error

couldn't find recordset with name: %s, expected 1

Error message

couldn't find recordset with name: %s, expected 1

What it means

Lookup guard in Designate nameToID: a record-set listing for the given DNS name returned zero results, but exactly one was expected to map the name to a Designate record-set ID for the pending change.

Source

Thrown at dnsprovider/pkg/dnsprovider/providers/openstack/designate/rrchangeset.go:137

func (c *ResourceRecordChangeset) ResourceRecordSets() dnsprovider.ResourceRecordSets {
	return c.rrsets
}

func (c *ResourceRecordChangeset) nameToID(name string) (string, error) {
	opts := recordsets.ListOpts{
		Name: name,
	}
	allPages, err := recordsets.ListByZone(c.zone.zones.iface.sc, c.zone.impl.ID, opts).AllPages(context.TODO())
	if err != nil {
		return "", err
	}
	rrs, err := recordsets.ExtractRecordSets(allPages)
	if err != nil {
		return "", err
	}
	switch len(rrs) {
	case 0:
		return "", fmt.Errorf("couldn't find recordset with name: %s, expected 1", name)
	case 1:
		return rrs[0].ID, nil
	default:
		return "", fmt.Errorf("found multiple recordsets with name: %s, expected 1", name)
	}
}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Verify the record exists in the Designate zone
  2. Check for typos in the record name
  3. Re-list recordsets in the zone
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at dnsprovider/pkg/dnsprovider/providers/openstack/designate/rrchangeset.go:137 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/b536012557e81efe. Report an issue: GitHub.