kubernetes/kops · error
error cleaning up old records: %v
Error message
error cleaning up old records: %v
What it means
Wraps a failure of deleteRecord in the DigitalOcean DNS provider during changeset apply: after successfully creating the new records, deleting the superseded records with the same name failed, leaving potential duplicates.
Source
Thrown at dnsprovider/pkg/dnsprovider/providers/do/dns.go:418
}
for _, rrdata := range rrset.Rrdatas() {
recordCreateRequest := &godo.DomainRecordEditRequest{
Name: rrset.Name(),
Data: rrdata,
TTL: int(rrset.Ttl()),
Type: string(rrset.Type()),
}
err := createRecord(r.client, r.zone.Name(), recordCreateRequest)
if err != nil {
return fmt.Errorf("could not create record: %v", err)
}
}
for _, record := range deleteRecords {
err := deleteRecord(r.client, r.zone.Name(), record.ID)
if err != nil {
return fmt.Errorf("error cleaning up old records: %v", err)
}
}
return nil
}
// listDomains returns a list of godo.Domain
func listDomains(c *godo.Client) ([]godo.Domain, error) {
// TODO (andrewsykim): pagination in ListOptions
domains, _, err := c.Domains.List(context.TODO(), &godo.ListOptions{})
if err != nil {
return nil, fmt.Errorf("failed to list domains: %v", err)
}
return domains, err
}
// createDomain creates a domain provided godo.DomainCreateRequestView on GitHub (pinned to 4c8573c808)
Solutions
- Manually inspect and dedupe records in the DO dashboard
- Re-run the DNS apply
- Check API token delete permissions
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at dnsprovider/pkg/dnsprovider/providers/do/dns.go:418 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/0073c6d5edf937de.
Report an issue: GitHub.