{"record":{"id":"0f27aa35a2365208","repo":"owasp-amass/amass","slug":"failed-to-traverse-the-fqdn","errorCode":null,"errorMessage":"failed to traverse the FQDN","messagePattern":"failed to traverse the FQDN","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/net/addr.go","lineNumber":130,"sourceCode":"\nfunc getAddr(ctx context.Context, db repository.Repository, ip *dbt.Entity, since time.Time) (*network.IPAddress, error) {\n\tif entity, err := db.FindEntityById(ctx, ip.ID); err == nil && entity != nil {\n\t\tif ip, ok := entity.Asset.(*network.IPAddress); ok {\n\t\t\treturn ip, nil\n\t\t}\n\t}\n\treturn nil, errors.New(\"failed to extract the IP address\")\n}\n\nfunc oneMoreName(ctx context.Context, db repository.Repository, fqdn *dbt.Entity, since time.Time) (*network.IPAddress, error) {\n\tif edges, err := db.OutgoingEdges(ctx, fqdn, since, \"dns_record\"); err == nil && len(edges) > 0 {\n\t\tfor _, edge := range edges {\n\t\t\tif rel, ok := edge.Relation.(*oamdns.BasicDNSRelation); ok && (rel.Header.RRType == 1 || rel.Header.RRType == 28) {\n\t\t\t\treturn getAddr(ctx, db, edge.ToEntity, since)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, errors.New(\"failed to traverse the FQDN\")\n}\n\nfunc cnameQuery(ctx context.Context, db repository.Repository, fqdn *dbt.Entity, since time.Time) (*network.IPAddress, error) {\n\tset := stringset.New()\n\tdefer set.Close()\n\n\tnext := fqdn\nloop:\n\tfor i := 0; i < 10; i++ {\n\t\tn, err := db.FindEntityById(ctx, next.ID)\n\t\tif err != nil || set.Has(n.Asset.Key()) {\n\t\t\tbreak\n\t\t}\n\t\tset.Insert(n.Asset.Key())\n\n\t\tif edges, err := db.OutgoingEdges(ctx, n, since, \"dns_record\"); err == nil && len(edges) > 0 {\n\t\t\tfor _, edge := range edges {\n\t\t\t\tif rel, ok := edge.Relation.(*oamdns.BasicDNSRelation); ok {","sourceCodeStart":112,"sourceCodeEnd":148,"githubUrl":"https://github.com/owasp-amass/amass/blob/79299dce87b0085db0f2f4ef3e9c52cccb49f514/internal/net/addr.go#L112-L148","documentation":"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.","triggerScenarios":"Thrown at internal/net/addr.go:130 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"79299dce87b0085db0f2f4ef3e9c52cccb49f514","analyzedAt":"2026-09-06T08:22:48.198Z","contentChangedAt":"2026-09-06T08:22:48.198Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}