owasp-amass/amass · error
failed to traverse the FQDN
Error message
failed to traverse the FQDN
What it means
oneMoreName could not resolve an IPAddress while walking outgoing 'dns_record' edges from an FQDN entity: the edge query errored, returned no edges, or none of the edges led (via A/AAAA records or getAddr) to an IP asset. The message is slightly misleading — it is a DNS-graph traversal dead end for that name, not a generic traversal failure.
Source
Thrown at internal/net/addr.go:130
func getAddr(ctx context.Context, db repository.Repository, ip *dbt.Entity, since time.Time) (*network.IPAddress, error) {
if entity, err := db.FindEntityById(ctx, ip.ID); err == nil && entity != nil {
if ip, ok := entity.Asset.(*network.IPAddress); ok {
return ip, nil
}
}
return nil, errors.New("failed to extract the IP address")
}
func oneMoreName(ctx context.Context, db repository.Repository, fqdn *dbt.Entity, since time.Time) (*network.IPAddress, error) {
if edges, err := db.OutgoingEdges(ctx, fqdn, since, "dns_record"); err == nil && len(edges) > 0 {
for _, edge := range edges {
if rel, ok := edge.Relation.(*oamdns.BasicDNSRelation); ok && (rel.Header.RRType == 1 || rel.Header.RRType == 28) {
return getAddr(ctx, db, edge.ToEntity, since)
}
}
}
return nil, errors.New("failed to traverse the FQDN")
}
func cnameQuery(ctx context.Context, db repository.Repository, fqdn *dbt.Entity, since time.Time) (*network.IPAddress, error) {
set := stringset.New()
defer set.Close()
next := fqdn
loop:
for i := 0; i < 10; i++ {
n, err := db.FindEntityById(ctx, next.ID)
if err != nil || set.Has(n.Asset.Key()) {
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 {View on GitHub (pinned to 79299dce87)
Solutions
- Confirm the FQDN entity actually has A/AAAA DNS record edges recorded after the 'since' cutoff
- Relax or review the time window passed as 'since' if records exist but are filtered out
- Handle the error as a non-fatal 'no address found' in NamesToAddrs and keep processing other names
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at internal/net/addr.go:130 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/0f27aa35a2365208.
Report an issue: GitHub.