# Error: Joining meeting timeout. Signature is invalid

**URL:** <https://devforum.zoom.us/t/error-joining-meeting-timeout-signature-is-invalid/93834>\
**Category:** Web\
**Created:** [August 23, 2023, 12:59pm UTC](https://devforum.zoom.us/t/error-joining-meeting-timeout-signature-is-invalid/93834 "2023-08-23T12:59:38Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![ibrahim.ryweck](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ibrahim.ryweck/32/51328_2.png) [@ibrahim.ryweck](https://devforum.zoom.us/u/ibrahim.ryweck)\
**Post date:** [August 23, 2023, 12:59pm UTC](https://devforum.zoom.us/t/error-joining-meeting-timeout-signature-is-invalid/93834/1 "2023-08-23T12:59:38Z")

</div>

I’ll gone through other threads on the same topic but the solution is not working for me. Let me share the codes:  
My generate zoom sdk signature: def generate\_zoom\_sdk\_signature(meeting\_number, role):  
iat = int(time.time()) - 30  
exp = iat + 60 \* 60 \* 2

```
client_id = os.getenv("ZOOM_CLIENT_ID_RYWECKN")
sdk_password = os.getenv("ZOOM_CLIENT_SECRET_RYWECKN")
# {
# "appKey": ZOOM_MEETING_SDK_KEY_OR_CLIENT_ID,
# "sdkKey": ZOOM_MEETING_SDK_KEY_OR_CLIENT_ID,
# "mn": MEETING_NUMBER,
# "role": ROLE,
# "iat": 1646937553,
# "exp": 1646944753,
# "tokenExp": 1646944753
# }
payload={
    "appKey": client_id,
    "sdkKey": client_id,
    "mn": meeting_number,
    "role": role,
    "iat": iat,
    "exp": exp,
    "tokenExp": exp
    }

print("Payload: ", payload)
signature = jwt.encode(payload, sdk_password, algorithm="HS256")
print("Signature: ", signature)
return signature

```

What am i doing wrong? I am getting signature is valid. Also, I am able to successfully create webinars. But i am not able to join them. Not from 1 side or 0 side.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [August 23, 2023, 3:49pm UTC](https://devforum.zoom.us/t/error-joining-meeting-timeout-signature-is-invalid/93834/2 "2023-08-23T15:49:17Z")

</div>

Hi @ibrahim.ryweck ,

This is most often an issue with time.

What solutions have you attempted and what threads have you referenced please? I want to avoid being redundant in helping with troubleshooting 🙂

Can you please decode signature on [jwt.io](http://jwt.io/) to confirm if its invalid?

---

<div class="post-metadata">

**Author:** ![ibrahim.ryweck](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ibrahim.ryweck/32/51328_2.png) [@ibrahim.ryweck](https://devforum.zoom.us/u/ibrahim.ryweck)\
**Post date:** [August 24, 2023, 5:55am UTC](https://devforum.zoom.us/t/error-joining-meeting-timeout-signature-is-invalid/93834/4 "2023-08-24T05:55:42Z")

</div>

It does say it is invalid but the problem is on my production server i am using JWT authentication & it is working fine. Since JWT has reached end of life, I have implemented OAuth. With it, I am able to:

1. Create webinar
2. Delete Webinar
3. Update webinar

But as soon as I try to Join the webinar, I get that error I mentioned.

---

<div class="post-metadata">

**Author:** ![chunsiong.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chunsiong.zoom/32/35488_2.png) [@chunsiong.zoom](https://devforum.zoom.us/u/chunsiong.zoom)\
**Post date:** [August 24, 2023, 10:55am UTC](https://devforum.zoom.us/t/error-joining-meeting-timeout-signature-is-invalid/93834/5 "2023-08-24T10:55:01Z")

</div>

@ibrahim.ryweck

For Meeting SDK, you need to create a **Meeting SDK App Type** and use the ClientID and ClientSecret from there.

This is different from the **OAuth App** which you have created.

---

<div class="post-metadata">

**Author:** ![ibrahim.ryweck](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ibrahim.ryweck/32/51328_2.png) [@ibrahim.ryweck](https://devforum.zoom.us/u/ibrahim.ryweck)\
**Post date:** [August 24, 2023, 12:48pm UTC](https://devforum.zoom.us/t/error-joining-meeting-timeout-signature-is-invalid/93834/6 "2023-08-24T12:48:02Z")

</div>

Understood. Thanks. I’ll create a meeting app type and then continue. I’ll use this thread if any issue comes.

---

<div class="post-metadata">

**Author:** ![ibrahim.ryweck](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ibrahim.ryweck/32/51328_2.png) [@ibrahim.ryweck](https://devforum.zoom.us/u/ibrahim.ryweck)\
**Post date:** [August 25, 2023, 8:20am UTC](https://devforum.zoom.us/t/error-joining-meeting-timeout-signature-is-invalid/93834/7 "2023-08-25T08:20:39Z")

</div>

Hi…i have done what you suggested. All the details now belong to a Meeting App type. I am again able to create, edit and delete the webinar.  
But I am not able to join the webinar. This time I am getting Joining meeting timeout.

Fail to join the meeting. Error.

I have cross verified that I am putting proper timings.

---

<div class="post-metadata">

**Author:** ![ibrahim.ryweck](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ibrahim.ryweck/32/51328_2.png) [@ibrahim.ryweck](https://devforum.zoom.us/u/ibrahim.ryweck)\
**Post date:** [August 25, 2023, 8:33am UTC](https://devforum.zoom.us/t/error-joining-meeting-timeout-signature-is-invalid/93834/8 "2023-08-25T08:33:27Z")

</div>

I am able to join the webinar as the creator of the webinar: 1.  
But now others are not able to join it: 0.

Here’s my script code:

```auto
 <script>
        // ZoomMtg.setZoomJSLib('https://source.zoom.us/2.11.0/lib', '/av')
        ZoomMtg.setZoomJSLib('../static/zoom/lib', '/av')

        ZoomMtg.preLoadWasm()
        ZoomMtg.prepareWebSDK()
        // loads language files, also passes any error messages to the ui
        ZoomMtg.i18n.load('en-US')
        ZoomMtg.i18n.reload('en-US')
        
        var sdkKey = '{{sdk_key}}'
        var meetingNumber = '{{meeting_number}}'
        var passWord = '{{password}}'
        var role = {{role}}
        var userName = '{{firstname}} {{lastname}}'
        var userEmail = '{{email}}'
        var zakToken = '{{zak_token}}'
        var leaveUrl = `
        {% if role == 1 %}
            /schedule-webinar
        {% else %}
            /webinars     
        {% endif %}
        `
        var signature = '{{signature}}'
        console.log(sdkKey)
        startMeeting(signature)

        function startMeeting(signature) {

            document.getElementById('zmmtg-root').style.display = 'block'

            ZoomMtg.init({
                leaveUrl: leaveUrl,
                success: (success) => {
                    console.log(success)
                    ZoomMtg.join({
                        signature: signature,
                        sdkKey: sdkKey,
                        meetingNumber: meetingNumber,
                        passWord: passWord,
                        userName: userName,
                        userEmail: userEmail,
                        zak: zakToken,
                        success: (success) => {
                            console.log(success)
                        },
                        error: (error) => {
                            console.log(error)
                        },
                    })
                },
                error: (error) => {
                    console.log(error)
                }
            })
        }
    </script>

```

---

<div class="post-metadata">

**Author:** ![sales1](https://avatars.discourse-cdn.com/v4/letter/s/ed655f/32.png) [@sales1](https://devforum.zoom.us/u/sales1)\
**Post date:** [August 25, 2023, 4:41pm UTC](https://devforum.zoom.us/t/error-joining-meeting-timeout-signature-is-invalid/93834/9 "2023-08-25T16:41:40Z")

</div>

Only the host should use the ZAK token when joining the meeting. everyone joining as a participant (0) should leave that out. They also need their own signature.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [August 25, 2023, 8:22pm UTC](https://devforum.zoom.us/t/error-joining-meeting-timeout-signature-is-invalid/93834/10 "2023-08-25T20:22:14Z")

</div>

Hi @ibrahim.ryweck , David is correct. Please fix and try again.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [September 25, 2023, 6:22am UTC](https://devforum.zoom.us/t/error-joining-meeting-timeout-signature-is-invalid/93834/11 "2023-09-25T06:22:52Z")

</div>

Closed on September 25, 2023, 6:22am UTC

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
