kubernetes/kops · error
could not create record: %v
Error message
could not create record: %v
What it means
DigitalOcean resourceRecordChangeset.applyResourceRecordSet wraps a failure of the godo CreateRecord call while applying additions in a record changeset. It fires when the DO API rejects creation of an individual DNS record (invalid data, auth, rate limit); since DO lacks record sets, each record is created individually and any failure aborts the changeset.
Source
Thrown at dnsprovider/pkg/dnsprovider/providers/do/dns.go:411
// and delete any previously created records matching the same name.
// This is required for digitalocean since it's API does not handle record sets, but
// only individual records
func (r *resourceRecordChangeset) applyResourceRecordSet(rrset dnsprovider.ResourceRecordSet) error {
deleteRecords, err := getRecordsByName(r.client, r.zone.Name(), rrset.Name())
if err != nil {
return fmt.Errorf("failed to get record IDs to delete")
}
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 {View on GitHub (pinned to 4c8573c808)
Solutions
- Check the record name/type/TTL against DO API constraints
- Verify API token permissions for the domain
- Retry after rate-limit pauses
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at dnsprovider/pkg/dnsprovider/providers/do/dns.go:411 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/eb760de3481eecbe.
Report an issue: GitHub.