Failed to initialize Zoom SDK, Error: 5, internalErrorCode=124

Our company is releasing an application that works with ZoomMeeting,
We have recently updated the ZoomSDK (v5.16.10.17706), and the following error occurs.

Failed to initialize Zoom SDK, Error: 5, internalErrorCode=124

The timing of this error is not constant and occurs at various times.
When this occurs, the user cannot participate in ZoomMeeting, and restarting the application several times will improve the situation.

Internally, we believe that this is caused by a failure in the initialization of the Zoom SDK, but we have not found the cause in the implementation.
Please see attached the source of the initialization part of the Zoom SDK.

Create JWT with io.jsonwebtoken
AuthConstants.kt

        val SDK_JWTTOKEN: String
            get() {
                try {
                    val key = Keys.hmacShaKeyFor(BuildConfig.ZOOM_SDK_SECRET.toByteArray())
                    val now = Date()
                    val jws = Jwts.builder()
                        .header().add("alg", "HS256").and()
                        .header().add("typ", "JWT").and()
                        .issuedAt(now)
                        .expiration(Date(now.time + 1000 * 3600))
                        .signWith(key)
                        //.claim("sdkKey", BuildConfig.ZOOM_SDK_KEY)
                        .claim("appKey", BuildConfig.ZOOM_SDK_KEY)
                        .claim("tokenExp", Date(now.time + 1000 * 3600).time / 1000)
                        .compact();
                    return jws
                } catch(ex: Exception) {

                }
                return ""
            }

Initialize SDK using created JWT
InitAuthSDKHelper.kt

    fun initSDK(context: Context?, callback: InitAuthSDKCallback?) {
        if (!mZoomSDK.isInitialized) {
            val jwtToken = AuthConstants.SDK_JWTTOKEN
            Timber.d("TOKEN:%s", jwtToken)
            mInitAuthSDKCallback = callback
            val initParams = ZoomSDKInitParams()
            initParams.jwtToken = jwtToken
            initParams.enableLog = true
            initParams.logSize = 50
            initParams.domain = AuthConstants.WEB_DOMAIN
            //initParams.appKey = AuthConstants.SDK_KEY
            //initParams.appSecret = AuthConstants.SDK_SECRET
            initParams.videoRawDataMemoryMode =
                ZoomSDKRawDataMemoryMode.ZoomSDKRawDataMemoryModeStack
            GlobalScope.launch(Dispatchers.Main) {
                mZoomSDK.initialize(context, this@InitAuthSDKHelper, initParams)
            }
        }
    }

@dev33 do you have a sample of your JWT token? Could you double check if the SDK is currently above the minimum support version as well?

Thank you for your reply!

do you have a sample of your JWT token?

AppKey:
SecretKey:

Could you double check if the SDK is currently above the minimum support version as well?

We are using the SDK 5.16.10.17706 in the release version, so it should be within the support period.

@dev33.

Please rotate your secret key.

I would need the generated signature, and not the appkey and secret key.
It is also known as the JWT Token

@chunsiong.zoom

Thank you for your confirmation.
I got the JWT when the error occurred.
Could you confirm us anything from this?

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTkzNzI5NTksImV4cCI6MTcxOTM3NjU1OSwiYXBwS2V5Ijoia0NjSlkwbWRCUHlBUVVHWnhUUExTclJUOXdNRGNEOFg1NWc0IiwidG9rZW5FeHAiOjE3MTkzNzY1NTl9.5NZ3Q2PElQ15KRDcIjgXovgmJ84pQB23h_92DwYyjhE

@chunsiong.zoom

Is there anything from the information I have sent you that we should check with our side?

@dev33

sometimes i will use (now - 5) mins or more in case there is some time drift, or slight different time on the mobile phone. if the token is generated on server side, you would probably have more control on the time, but on the mobile side, it is dependent on the user’s mobile phone

                    .issuedAt(now)
                    .expiration(Date(now.time + 1000 * 3600))