kubernetes/kops · error
found multiple recordsets with name: %s, expected 1
Error message
found multiple recordsets with name: %s, expected 1
What it means
Lookup guard in Designate nameToID: multiple record-sets share the queried name, but exactly one is required to unambiguously resolve the name to a record-set ID. Designate's API returned an ambiguous result.
Source
Thrown at dnsprovider/pkg/dnsprovider/providers/openstack/designate/rrchangeset.go:141
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
- Deduplicate the recordsets in Designate
- Delete stale duplicate records
- Inspect the zone with openstack recordset list
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at dnsprovider/pkg/dnsprovider/providers/openstack/designate/rrchangeset.go:141 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/3711f9692c33370e.
Report an issue: GitHub.