resolver errors say what went wrong, not "no such name"

/v2/resolve answers 200, 400 or 502, and an unregistered name is
  NRAvailable, so no status means "not registered". Mapping 400/404/410 to
  NOT_FOUND made a misconfigured relay deny every name, and hid a relay
  upgraded ahead of its resolver. All three now surface as RESOLVER.

  rslvNotFound would have gone dead, so it counts what its name says: an
  availability answer the encoder downgrades for a session below v22. The
  wire is unchanged.

  A hashed query the registrar cannot name is refused with 502 rather than
  answered with a record named "unknown", which the client rejects anyway.
  NRRUnknown is capped to 32 printable characters again, as the spec says.
  A registered name that is also reserved no longer offers a date it will
  never free up on. rentPrices is registrationPrices throughout, and
  yearPriceUSD is USDCents rather than a bare Int64.
This commit is contained in:
Alain Brenzikofer committed 2026-09-10 15:16:11 +02:00
1 parent a3fb63ff06
commit ef97b86ea6
10 files changed
+80 -51

No files matched your search

+2 -1
View File
@@ -1560,7 +1560,8 @@ seconds since the Unix epoch. Lengths are characters.
| `minLabelLength` | number | characters; the registry refuses shorter labels |
A reason word is `internal`, `trademark`, `community`, or a word a later version
reserves under. The words are the same on the wire, in the backing resolver's
reserves under, at most 32 printable ASCII characters. A router truncates an
unknown word to that, since it reaches the client as a word. The words are the same on the wire, in the backing resolver's
JSON and in a client's own API.
`available` alone means registrable: a name the registry holds back answers