Symptoms:
A Vivox SDK call requiring a Vivox Access Token failed with status code 20128 "Access Token Issuer Mismatch"
.
Implementations which don't use the Unity Authentication Service (UAS) for authorization require Vivox Access Tokens for calls such as signing in the user, joining a channel, enabling transcription, muting or unmuting participants for everyone, and kicking participants from a channel.
Cause:
VxAccessTokenIssuerMismatch (20128)
errors are caused when you have a Vivox Access Token generated with a certain token issuer value, and use it to authenticate an SDK call which uses a different issuer value. In other words, the issuer value used in the SDK request itself does not match the issuer in the token.
There are a several possible causes for a VxAccessTokenIssuerMismatch (20128)
error, including causes specific to the Vivox SDK you're using:
- For all SDKs: When using Vivox Access Tokens rather than UAS for authentication, a user or channel URI inside the token was incorrectly constructed, or the issuer used in URI construction was entered incorrectly.
-
In Unity v16: When using
InitializationOptions().SetVivoxCredentials()
, and the issuer argument is entered incorrectly. -
In Unreal and Unity v15: An
AccountId
orChannelId
which was used to create theILoginSession
orIChannelSession
associated with the SDK call had their issuer argument entered incorrectly. - In Vivox Core: A user or channel URI argument found in the SDK request was incorrectly constructed, or the issuer used in URI construction was entered incorrectly.
Resolution:
To avoid these errors, ensure that your Vivox Access Token issuer credential is typed correctly everywhere it is used, and that your token vending service is generating access tokens correctly.
The following support articles can help you determine the correct credential and find the Access Token Developer Guide appropriate to your Vivox SDK: