Make rate-limit header parsing null-safe

Use ParseOrNull helpers for X-RateLimit-Remaining and X-RateLimit-Reset-After header values and make the TimeSpan conversion null-safe. This prevents exceptions when rate-limit headers are missing or malformed and keeps resetAfterDelay nullable while preserving existing rate-limit logic.
This commit is contained in:
primetime43 2026-05-18 20:13:14 -04:00
parent 47a163e982
commit f990910865

View file

@ -856,12 +856,12 @@ public class DiscordClient(
{
var remainingRequestCount = response
.Headers.TryGetValue("X-RateLimit-Remaining")
?.Pipe(s => int.Parse(s, CultureInfo.InvariantCulture));
?.Pipe(s => int.ParseOrNull(s, CultureInfo.InvariantCulture));
var resetAfterDelay = response
.Headers.TryGetValue("X-RateLimit-Reset-After")
?.Pipe(s => double.Parse(s, CultureInfo.InvariantCulture))
.Pipe(TimeSpan.FromSeconds);
?.Pipe(s => double.ParseOrNull(s, CultureInfo.InvariantCulture))
?.Pipe(TimeSpan.FromSeconds);
if (remainingRequestCount <= 0 && resetAfterDelay is not null)
{