When processing an HTTP response with a 429 (Too Many Requests) status code, the SDK's internal handleResponse function attempts to throw a TooManyRequestsException. This exception expects a retry-after header to set the _retryAfter property. However, if the response lacks the retry-after header, the SDK generates a Null check operator used on a null value exception due to the null assertion on the retry-after header value. This behaviour might lead to unexpected errors for developers using the SDK.
Steps to Reproduce:
Trigger a request resulting in a 429 status code response without the retry-after header using the SDK's public-facing functions.
Observe the "Null check operator used on a null value" exception.
Expected Behavior:
The SDK should handle a 429 status code, regardless of the retry-after header's presence or absence.
Actual Behavior:
The SDK raises a null assertion error due to the absent retry-after header.
Suggested Fix:
Make the _retryAfter property nullable and manage cases where the retry-after header is not present.
When processing an HTTP response with a
429
(Too Many Requests) status code, the SDK's internalhandleResponse
function attempts to throw aTooManyRequestsException
. This exception expects aretry-after
header to set the_retryAfter
property. However, if the response lacks theretry-after
header, the SDK generates aNull check operator used on a null value
exception due to the null assertion on the retry-after header value. This behaviour might lead to unexpected errors for developers using the SDK.Steps to Reproduce:
Expected Behavior: The SDK should handle a
429
status code, regardless of the retry-after header's presence or absence.Actual Behavior: The SDK raises a null assertion error due to the absent retry-after header.
Suggested Fix:
_retryAfter
property nullable and manage cases where the retry-after header is not present.