jeessy2/ddns-go · error

未能获取域名 %s 对应的 IPv6 地址

Error message

未能获取域名 %s 对应的 IPv6 地址

What it means

A validation guard inside getDesiredOriginRecords: the domain was matched against eo.Domains.Ipv6Domains, so an IPv6 origin record is expected, but eo.Domains.Ipv6Addr is empty — the resolver/config layer never populated the IPv6 address for this domain. The error fires before any EdgeOne API call, failing the origin-record build for addUpdateOriginGroups.

Source

Thrown at dns/edgeone_origin.go:170

func (eo *EdgeOne) getDesiredOriginRecords(domainTuple *config.DomainTuple) ([]EdgeOneOriginRecord, error) {
	domain := domainTuple.Primary
	domainName := domain.String()
	weight := eo.getOriginWeight(domain)
	records := make([]EdgeOneOriginRecord, 0, 2)

	if eo.hasDomain(eo.Domains.Ipv4Domains, domainName) {
		if eo.Domains.Ipv4Addr == "" {
			return nil, fmt.Errorf("未能获取域名 %s 对应的 IPv4 地址", domain)
		}
		records = append(records, EdgeOneOriginRecord{
			Record: eo.Domains.Ipv4Addr,
			Type:   edgeoneOriginRecordType,
			Weight: weight,
		})
	}
	if eo.hasDomain(eo.Domains.Ipv6Domains, domainName) {
		if eo.Domains.Ipv6Addr == "" {
			return nil, fmt.Errorf("未能获取域名 %s 对应的 IPv6 地址", domain)
		}
		records = append(records, EdgeOneOriginRecord{
			Record: eo.Domains.Ipv6Addr,
			Type:   edgeoneOriginRecordType,
			Weight: weight,
		})
	}
	if len(records) == 0 {
		return nil, fmt.Errorf("域名 %s 未配置可更新的源站记录", domain)
	}

	return records, nil
}

func (eo *EdgeOne) hasDomain(domains []*config.Domain, fullDomain string) bool {
	for _, domain := range domains {
		if domain != nil && domain.String() == fullDomain {
			return true

View on GitHub (pinned to 5874c2e666)

Solutions

  1. Check why the IPv6 address resolution step left eo.Domains.Ipv6Addr empty for this domain (DNS AAAA-record lookup failure or skipped resolution)
  2. Verify the domain actually has an AAAA record / IPv6 origin configured upstream
  3. If the domain is IPv4-only, remove it from Ipv6Domains so the guard is not triggered
  4. Re-run after ensuring the address-population step executes before addUpdateOriginGroups
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at dns/edgeone_origin.go:170 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of jeessy2/ddns-go@5874c2e666 (2026-09-03). Data as JSON: /api/errors/62f16e0b6ad66170. Report an issue: GitHub.