DNS 1 FORMERR vs 22 BADTRUNC
Both DNS 1 (FORMERR) and 22 (BADTRUNC) belong to the DNS Response Codes (RCODEs) category. 1 indicates that format error. The name server was unable to interpret the query due to a malformed DNS message. Meanwhile, 22 means that bad truncation. The TSIG record was truncated in a way that makes it impossible to verify the message signature.
Description
Format error. The name server was unable to interpret the query due to a malformed DNS message.
When You See It
Your DNS client or library sent a query the server could not parse, often caused by a buggy resolver, corrupted packet, or unsupported EDNS options.
How to Fix
Check your DNS client or library version for known bugs. Capture the raw query with dig or Wireshark and verify it conforms to the DNS wire format.
Description
Bad truncation. The TSIG record was truncated in a way that makes it impossible to verify the message signature.
When You See It
A large DNS response was truncated (TC bit set) but the TSIG MAC was computed over the full message, making the truncated version unverifiable.
How to Fix
Retry the query over TCP to avoid truncation. If using UDP, ensure your EDNS buffer size is large enough to receive the full signed response.
Key Differences
DNS 1: Format error. The name server was unable to interpret the query due to a malformed DNS message.
DNS 22: Bad truncation. The TSIG record was truncated in a way that makes it impossible to verify the message signature.
You encounter 1 when your DNS client or library sent a query the server could not parse, often caused by a buggy resolver, corrupted packet, or unsupported EDNS options.
You encounter 22 when a large DNS response was truncated (TC bit set) but the TSIG MAC was computed over the full message, making the truncated version unverifiable.
When to Use Which
For 1 (FORMERR): Check your DNS client or library version for known bugs. Capture the raw query with dig or Wireshark and verify it conforms to the DNS wire format. For 22 (BADTRUNC): Retry the query over TCP to avoid truncation. If using UDP, ensure your EDNS buffer size is large enough to receive the full signed response.