diff --git a/connector/oidc/oidc.go b/connector/oidc/oidc.go
index 56aad4b37bd8a218884419cd29fe074e3d04c695..5c10f74a60da6e2964e8230cfcfb168496e21261 100644
--- a/connector/oidc/oidc.go
+++ b/connector/oidc/oidc.go
@@ -260,7 +260,7 @@ func (c *oidcConnector) HandleCallback(s connector.Scopes, r *http.Request) (ide
 	if err != nil {
 		return identity, fmt.Errorf("oidc: failed to get token: %v", err)
 	}
-	return c.createIdentity(r.Context(), identity, token, createCaller)
+	return c.createIdentity(ctx, identity, token, createCaller)
 }
 
 // Refresh is used to refresh a session with the refresh token provided by the IdP
@@ -271,6 +271,8 @@ func (c *oidcConnector) Refresh(ctx context.Context, s connector.Scopes, identit
 		return identity, fmt.Errorf("oidc: failed to unmarshal connector data: %v", err)
 	}
 
+	ctx = context.WithValue(ctx, oauth2.HTTPClient, c.httpClient)
+
 	t := &oauth2.Token{
 		RefreshToken: string(cd.RefreshToken),
 		Expiry:       time.Now().Add(-time.Hour),