Why refresh token logic fails

private async refreshOAuthToken(): Promise<void> {

const { oauthToken } = useAuthStore.getState()

if (!oauthToken?.refresh_token) {

throw new Error('No refresh token available')

}

const params = new URLSearchParams({

grant_type: 'refresh_token',

refresh_token: oauthToken.refresh_token,

client_id: this.oauthConfig!.clientId,

})

const response = await axiosInstance.post(

'/api/method/frappe.integrations.oauth2.get_token',

params.toString(),

{

headers: {

'Content-Type': 'application/x-www-form-urlencoded',

},

}

)

const data = response.data

const token: OAuthToken = {

access_token: data.access_token,

token_type: data.token_type,

expires_in: data.expires_in,

expires_at: Date.now() + data.expires_in * 1000,

refresh_token: data.refresh_token

}

console.log(token)

const userInfo = await this.getUserInfo();

const userInfo1 = await this.getUserInfoByEmail(userInfo.message);

const detail = await this.getUserSessionId(userInfo.message)

await useAuthStore.getState().setOAuthToken(token)

await useAuthStore.getState().setCookie(detail.sid)

await useAuthStore.getState().setUser(userInfo1?.user)

}

async ensureValidAccessToken(): Promise<void> {

const auth = useAuthStore.getState()

// No OAuth token → nothing to refresh

if (!auth.oauthToken) return

if (Date.now() < auth.oauthToken.expires_at) return

// Token expired → refresh

await this.refreshOAuthToken()

}
Getting error as {“error”: “invalid client”}. I have cross checked client id is correct though facing issue