Webhook retried due to SocketTimeoutException

Description

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.

  1. Is this error on your side or ours? We do not see any logs related to this on our side.

  2. 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.

  3. 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]

"headers": {
    "CloudFront-Forwarded-Proto": "https",
    "CloudFront-Is-Desktop-Viewer": "true",
    "CloudFront-Is-Mobile-Viewer": "false",
    "CloudFront-Is-SmartTV-Viewer": "false",
    "CloudFront-Is-Tablet-Viewer": "false",
    "CloudFront-Viewer-Country": "US",
    "Content-Type": "application/json; charset=utf-8",
    "Host": "api-internal.getpulse.team",
    "User-Agent": "Zoom Marketplace/1.0a",
    "X-Forwarded-Port": "443",
    "X-Forwarded-Proto": "https",
    "x-zm-trackingid": "v=2.0;clid=aw1;rid=EventService_742dd420eea845019ae40bc735638151",
    "X-Zoom-Retry-Num": "1",
    "X-Zoom-Retry-Reason": "java.net.SocketTimeoutException:3,000 milliseconds timeout on connection http-outgoing-2122059 [ACTIVE]"
},
    "requestTime": "12/Nov/2021:18:51:47 +0000",

“event_ts”:1636742803362,

Which App Type (OAuth / Chatbot / JWT / Webhook)?
Oauth App

Which Endpoint/s?
Webhook: meeting.participant_joined

Hey @JagLoop99,

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.

Thanks,
Max

Hi Max,

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.

Is there any further things we can do to debug?

Greetings, @JagLoop99 ,

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 :

If the WebHook was received successfully by RequestBin, then you can rule out that whether Webhooks events are being sent or not.

We also recommend you consider:

  • Review any port/channel filters you have applied
  • Make sure the URL you have configured is publicly available

Here’s a helpful developer forum for you may find helpful:

Let me know if this helps.

Best,
Donte

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