Why does this setting enable_auto_refresh in the Python Platform SDK fail to trigger a refresh cycle when the access token expires mid-batch?
My GraphQL gateway uses DataLoader to batch requests to Genesys Cloud. I initialized the SDK client with configuration = Configuration() and configuration.access_token = client_credentials_auth(). I expect the SDK to handle rotation transparently.
The resolver chain works for the first 35 minutes. Then, the batch fails with a 401 Unauthorized response from /api/v2/users/me. The response JSON contains {"status": 401, "message": "Invalid token"}. The SDK logs show the refresh token is present, but no new token is fetched.
Steps to reproduce:
- Initialize
genesyscloud_platformclientv2with client credentials. - Set
configuration.enable_auto_refresh = True. - Wait for token expiry or manually invalidate the access token.
- Trigger a high-volume batch via Apollo Server.
The SDK throws genesyscloud_platformclientv2.rest.ApiException: (401). I see the refresh_token in the config object, but the internal request to the auth endpoint never fires. I’ve verified the refresh_url is set correctly. Is the Python SDK ignoring the refresh flag when wrapped in an async event loop?