Skip to content

ProviderClient.Request should not perform multiple reauthentications in a row #1745

@majewsky

Description

@majewsky

So I just got this error message:

Successfully re-authenticated, but got error executing request: Successfully
re-authenticated, but got error executing request: Successfully re-authenticated, but
got error executing request: Successfully re-authenticated, but got error executing
request: Successfully re-authenticated, but got error executing request: Successfully
re-authenticated, but got error executing request: Successfully re-authenticated, but
got error executing request: Successfully re-authenticated, but got error executing
request: Successfully re-authenticated, but got error executing request: Successfully
re-authenticated, but got error executing request: Successfully re-authenticated, but
got error executing request: Successfully re-authenticated, but got error executing
request: Successfully re-authenticated, but got error executing request: Successfully
re-authenticated, but got error executing request: Successfully re-authenticated, but
got error executing request: Successfully re-authenticated, but got error executing
request: Successfully re-authenticated, but got error executing request: Successfully
re-authenticated, but got error executing request: Successfully re-authenticated, but
got error executing request: Get https://service.example.com/some/endpoint/: dial tcp
12.34.56.78:443: connect: connection refused

I omitted the remaining 1109 instances of Successfully re-authenticated, but got error executing request because the point is clear. The backend service has a bug that causes it to respond with 401 even if the token is fresh and perfectly valid, which causes ProviderClient.Request to reauthenticate ad infinitum, or in this case, until a different error occurs.

I don't think it makes much sense for ProviderClient.Request to reauthenticate more than once for a single request. If the endpoint returns 401 for a second time, ProviderClient.Request should abort and give an ErrDefault401 to the user.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions