kubernetes/kops · error
internal error when deleting resource record set. Call succ
Error message
internal error when deleting resource record set. Call succeeded but number of records returned is incorrect. Records sent=%d, records returned=%d, deletions:%v
What it means
A post-condition check after a successful CloudDNS change call: the API returned a different number of deletions than were submitted, so client and server disagree on the applied change set. A protocol/API inconsistency, not a user input error. The sibling additions check is a separate error.
Source
Thrown at dnsprovider/pkg/dnsprovider/providers/google/clouddns/rrchangeset.go:117
// Anything left in the map must be an addition
for _, upsert := range upsertMap {
additions = append(additions, upsert.(ResourceRecordSet).impl)
}
}
change := service.NewChange(additions, deletions)
newChange, err := service.Create(rrsets.project(), rrsets.zone.impl.Name(), change).Do()
if err != nil {
return err
}
newAdditions := newChange.Additions()
if len(newAdditions) != len(additions) {
return fmt.Errorf("internal error when adding resource record set. Call succeeded but number of records returned is incorrect. Records sent=%d, records returned=%d, additions:%v", len(additions), len(newAdditions), c.additions)
}
newDeletions := newChange.Deletions()
if len(newDeletions) != len(deletions) {
return fmt.Errorf("internal error when deleting resource record set. Call succeeded but number of records returned is incorrect. Records sent=%d, records returned=%d, deletions:%v", len(deletions), len(newDeletions), c.removals)
}
return nil
}
func (c *ResourceRecordChangeset) IsEmpty() bool {
return len(c.additions) == 0 && len(c.removals) == 0 && len(c.upserts) == 0
}
// ResourceRecordSets returns the parent ResourceRecordSets
func (c *ResourceRecordChangeset) ResourceRecordSets() dnsprovider.ResourceRecordSets {
return c.rrsets
}
View on GitHub (pinned to 4c8573c808)
Solutions
- Retry the apply; re-list the record sets first so only the real delta is sent
- Upgrade kops in case of a CloudDNS API version mismatch
- Inspect the zone in the CloudDNS console to see which deletions actually landed and reconcile manually
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at dnsprovider/pkg/dnsprovider/providers/google/clouddns/rrchangeset.go:117 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/d6527e9f9d61dc9d.
Report an issue: GitHub.