owasp-amass/amass · error
failed to traverse the aliases
Error message
failed to traverse the aliases
What it means
cnameQuery exhausted its loop over the CNAME alias chain without reaching an address record: every dns_record edge examined was either not a BasicDNSRelation, not an A/AAAA (RRType 1/28) or CNAME (RRType 5) record, or the chain ended without a resolvable target. The sentinel fires when getAddr was never reachable through the alias traversal.
Source
Thrown at internal/net/addr.go:160
break
}
set.Insert(n.Asset.Key())
if edges, err := db.OutgoingEdges(ctx, n, since, "dns_record"); err == nil && len(edges) > 0 {
for _, edge := range edges {
if rel, ok := edge.Relation.(*oamdns.BasicDNSRelation); ok {
if rel.Header.RRType == 1 || rel.Header.RRType == 28 {
return getAddr(ctx, db, edge.ToEntity, since)
} else if rel.Header.RRType == 5 {
next = edge.ToEntity
continue loop
}
}
}
}
}
return nil, errors.New("failed to traverse the aliases")
}
View on GitHub (pinned to 79299dce87)
Solutions
- Verify the CNAME chain in the graph terminates in A/AAAA records within the 'since' window
- Guard against CNAME loops or chains that exceed the traversal's implicit limits
- Treat the error as 'unresolvable alias' in NamesToAddrs and skip the name instead of propagating the failure
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at internal/net/addr.go:160 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of owasp-amass/amass@79299dce87 (2026-09-06).
Data as JSON: /api/errors/ae11849059e16067.
Report an issue: GitHub.