Description
We are trying to integrate Zoom into our application using Web SDK and only one issue has not resolved yet. We faced with “Joining meeting timeout. Signature is invalid” randomly on both of our environments (development and staging). After clicking several times on “retry” button user is able to join to the meeting successfully. It occurs for every meeting for any user. We were able to find several opened issues in your devforum but they were not very helpful (Clock sync was suggested as a solution. But clock is synchronized in our environments for sure because we had sync clock issue with other integration). Could you help as to figure out what is the reason of this randomly occurred error? We are using ruby language to generate signature using the code snippet provided in your documentation and JWT zoom application for integration
Thank you.
Error
Joining meeting timeout. Signature is invalid
Which version?
We are using CDN solution. The version is 1.7.9.
To Reproduce(If applicable)
Steps to reproduce the behavior:
Initiate joining to the meeting using JS (ZoomMtg.join method)
User sees an error message ‘Joining meeting timeout. Signature is invalid’
Click retry several times
User is successfully joined to the meeting.
Laptop (please complete the following information):
Does not matter. It is reproducible in different devices and different OS
Additional context
Tried to use other possible variations of signature generation. Tried to use UTC timezone explicitly. Both of this actions did not resolve the problem.
I actually noticed that the sample Ruby code nearly always generates this error for me. I adapted the following code from another forum post a while back (can’t find the link right now), and it’s been working consistently:
require "base64"
module SignatureRoles
PARTICIPANT = 0
HOST = 1
end
def generate_signature(meeting_id:)
# Prevent time sync issue between client signature generation and Zoom
timestamp = (Time.now.to_f * 1000).round(0) - 30000
role = <logic for host or participant> ? SignatureRoles::HOST : SignatureRoles::PARTICIPANT
key = Rails.application.config.zoom.api_key
secret = Rails.application.config.zoom.api_secret
message = Base64.strict_encode64([key, meeting_id, timestamp, role].join)
hash = Base64.strict_encode64(OpenSSL::HMAC.digest("SHA256", secret, message))
Base64.strict_encode64([key, meeting_id, timestamp, role, hash].join("."))
end
Just FYI, you are passing role 1 into the Web SDK signature which means you are trying to start the meeting. If you are trying to join the meeting, try passing in role 0 and let me know if that fixes the issue.
Hello I am new in the community and I am presenting the same error in the example application with the sdk here I leave my signature if someone can help me please I am using php to generate the signature I detail code
Okay, that is the correct signature. What region are you located in? Are you seeing any errors in the browser console? Are you using the CDN or Local version?
Can you try using this sample app to see if it fixes the issue: