False context deadline exceeded errors in Go management API

I’m getting constant false context deadline exceeded errors in the User.Roles function in the Go management API.

It receives a context with a 30 second timeout. And it frequently throws the following error:

failed to send the request: Get "<my_auth0_url>/api/v2/users/<userid>/roles?include_totals=true&per_page=50": Post "https://<my_auth0_url>/oauth/token": context deadline exceeded

after just a few seconds.

This is the only function in my app that does this. And they all receive the same context.

I’m initializing the Auth0 management API as follows:

ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()

auth0Api, err := management.New(
	auth0Domain,
	management.WithClientCredentials(ctx, auth0ClientId, auth0ClientSecret),
)

And I’m calling the User.Roles function as follows:

roles, err := app.auth0Api.User.Roles(r.Context(), id)

The User.Roles function even throws this error if I give it a context with no timeout. For example: context.Background().

What is happening here?