What happened?
When reauthentication is already in progress, another request waits in reauthFuture.Get() without observing its context. A canceled request can therefore remain blocked until the active reauthentication completes.
After successful reauthentication, a failed retry is returned as ErrErrorAfterReauthentication. The error does not unwrap ErrOriginal, so ResponseCodeIs cannot detect status codes such as 404.
Expected behavior: a waiting request returns ctx.Err() when canceled without interrupting the active reauthentication, and the retried request error remains available through standard error unwrapping.
Version
v2 (current)
What happened?
When reauthentication is already in progress, another request waits in
reauthFuture.Get()without observing its context. A canceled request can therefore remain blocked until the active reauthentication completes.After successful reauthentication, a failed retry is returned as
ErrErrorAfterReauthentication. The error does not unwrapErrOriginal, soResponseCodeIscannot detect status codes such as 404.Expected behavior: a waiting request returns
ctx.Err()when canceled without interrupting the active reauthentication, and the retried request error remains available through standard error unwrapping.Version
v2 (current)