We are trying to obtain the status of when a user enters/leaves a meeting. We use webhooks to achieve this. Often we see webhooks not fire at all, or are retried later with the message ’ SocketTimeoutException’ as shown below, much later like 10minutes or 1 hour later. We need near realt-time.
Is this error on your side or ours? We do not see any logs related to this on our side.
If we miss a participant leave/join, what backstop can we use? We tried past_meetings/{}/participants endpoint but it doesn’t show while the meeting is ongoing. We could poll this every minute.
We also tried to retrieve the status of the meeting using /past_meetings/{meetingId}/instances but only once the meeting ends, and not for instant meetings. We could poll this every minute
Can you let us know what we can do in these scenarios?
Error
java.net.SocketTimeoutException:3,000 milliseconds timeout on connection http-outgoing-2122059 [ACTIVE]
Thank you for reaching out to the Zoom Developer Forum. It sounds like your server may be blocking the Webhook from being delivered to your endpoint which is causing our retry logic to attempt to deliver the webhook at a later time.
It’s possible this is caused by a firewall or another network configuration which is why you aren’t seeing logs for this in your app. Please make sure that your endpoint is publicly accessible and let me know if that helps to resolve the issue.
I checked and our API endpoint is on AWS Cloudfront edge distribution. We have no logs for the initial attempts, which seems to indicate that Zoom’s webhook servers are not reaching a globally distributed AWS endpoint.
Our use case is real-time - so we cannot miss the original webhook as a retry occurring 5 minutes later is too late for our use case.
Happy to offer a suggestion here! To test whether WebHook events are being sent, you can use a tool like RequestBin. You can generate an endpoint and trigger the Webhook event, then check the Request Bin logs to confirm that the request arrived :