Zero-downtime OAuth client secret rotation with Node.js SDK

How are you guys handling client secret rotation in production? We’re running a Node.js integration that uses the genesyscloud SDK for high-volume outbound campaigns. The current setup caches the access token, but when we update the client secret in the Genesys Cloud portal, the cache expires and we get a wave of 401 Unauthorized errors until the new token is fetched.

I’ve looked at the /api/v2/oauth/tokens endpoint, but it seems tied to the existing credentials. Is there a way to programmatically validate the new secret before switching over? I’m thinking of creating a secondary OAuth app with a staggered expiry, but that feels messy.

Here’s the basic refresh logic we’re using:

const refresh = async () => {
 try {
 const response = await platformClient.authApi.authPostToken({
 body: {
 grant_type: 'client_credentials',
 client_id: process.env.GC_CLIENT_ID,
 client_secret: process.env.GC_CLIENT_SECRET // This is the problem child
 }
 });
 return response.body.access_token;
 } catch (err) {
 console.error('Auth failed:', err.status); 
 throw err;
 }
};

If I swap the env var, the SDK doesn’t know to re-auth until the next request fails. Any tips for a smooth handoff?