owasp-amass/amass · info · ErrNoRecordOfThisType
no record of this type
Error message
no record of this type
What it means
ErrNoRecordOfThisType is a sentinel error returned by dnsQuery/PerformQuery in engine/plugins/support/resolvers.go when the DNS response is successful (RcodeSuccess/NOERROR) but contains zero answer records of any kind. It means the name exists but has no records at all for the queried type, distinct from NXDOMAIN (ErrNameDoesNotExist). Callers use it to skip names that exist but lack the requested record type.
Source
Thrown at engine/plugins/support/resolvers.go:27
"errors"
"runtime"
"strings"
"time"
"github.com/miekg/dns"
"github.com/owasp-amass/resolve/conn"
"github.com/owasp-amass/resolve/pool"
"github.com/owasp-amass/resolve/selectors"
"github.com/owasp-amass/resolve/servers"
"github.com/owasp-amass/resolve/types"
"github.com/owasp-amass/resolve/utils"
"github.com/owasp-amass/resolve/wildcards"
"golang.org/x/net/publicsuffix"
)
var (
ErrNameDoesNotExist = errors.New("name does not exist")
ErrNoRecordOfThisType = errors.New("no record of this type")
ErrFailedMaxDNSAttempts = errors.New("failed the maximum number of DNS attempts")
)
type baseline struct {
address string
qps int
}
// baselineResolvers is a list of trusted public DNS resolvers.
var baselineResolvers = []baseline{
{"8.8.8.8", 5}, // Google Primary
// {"8.8.4.4", 5}, // Google Secondary
{"95.85.95.85", 2}, // Gcore DNS Primary
{"2.56.220.2", 2}, // Gcore DNS Secondary
{"76.76.2.0", 2}, // ControlD Primary
{"76.76.10.0", 2}, // ControlD Secondary
{"9.9.9.9", 2}, // Quad9 Primary
{"149.112.112.112", 2}, // Quad9 SecondaryView on GitHub (pinned to 79299dce87)
Solutions
- Skip this record type for the name and try a different qtype (A vs AAAA vs TXT) if needed.
- Do not retry aggressively: NOERROR-empty responses are often authoritative.
- Compare with support.ErrNoRecordOfThisType via == / errors.Is to handle it separately from NXDOMAIN.
- If records are expected, verify with dig @resolver name TYPE and try alternate trusted resolvers.
Example fix
// before
rr, err := support.PerformQuery(ctx, fqdn, dns.TypeAAAA)
if err != nil {
return err
}
// after
rr, err := support.PerformQuery(ctx, fqdn, dns.TypeAAAA)
if err != nil {
if err == support.ErrNoRecordOfThisType {
return nil // name exists, just no AAAA records
}
return err
} Defensive patterns
Strategy: try-catch
Validate before calling
// Pre-check other record types before assuming data is missing dig +short example.com A dig +short example.com TXT
Type guard
func isNoRecordOfThisType(err error) bool { return errors.Is(err, support.ErrNoRecordOfThisType) } Try / catch
rr, err := support.PerformQuery(ctx, name, qtype)
if err != nil {
if errors.Is(err, support.ErrNoRecordOfThisType) {
return nil // name exists, no records of this type
}
return err
} Prevention
- Fall back to alternative qtypes (A/AAAA/TXT/CNAME) when one returns empty.
- Treat NOERROR-empty as authoritative and avoid retry storms.
- Keep this error distinct from ErrNameDoesNotExist in your handling logic.
- Verify surprising empties with dig against a public resolver.
When it happens
Trigger: Calling support.PerformQuery(ctx, name, qtype) where the response has Rcode == dns.RcodeSuccess but len(resp.Answer) == 0 — e.g. querying A records for a name that only exists as a CNAME edge case or has an empty answer from a trusted resolver.
Common situations: Querying TXT records for a domain that has none; asking for AAAA on IPv4-only hosts; DNS servers returning NOERROR with empty answers for non-existent record types; rate-limited or filtered resolvers returning empty NOERROR responses.
Understand the failure class
Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.
Related errors
- name does not exist
- no resolver keys were found in the resolvers section
- brute forcing cannot be performed without DNS resolution
- active enumeration cannot be performed without DNS resolutio
- no valid resolvers were found
AI-assisted analysis of owasp-amass/amass@79299dce87 (2026-09-06).
Data as JSON: /api/errors/70d7a2e244742fbc.
Report an issue: GitHub.