News & Announcements User Community Developer Community

Welcome to the RingCentral Community

Please note the community is currently under maintenance and is read-only.

Search
Make sure to review our Terms of Use and Community Guidelines.
  Please note the community is currently under maintenance and is read-only.
Home » Developers
Can't create webhook subscription anymore [production]
Tags: webhooks, subscription
Apr 19, 2022 at 11:09am   •   2 replies  •  0 likes
Oleg Zaiat

Why can't I create a subscription for a webhook anymore? A week ago everything was working.

I've got:

 com.ringcentral.RestException: HTTP Response
 =============
 status code: 400
    
 Server: nginx
 Date: Tue, 19 Apr 2022 18:02:49 GMT
 Content-Type: application/json
 Transfer-Encoding: chunked
 Connection: keep-alive
 LocalHostInfo: 10.120.28.92__20034@iad41-c01-csg11.c01.ringcentral.com
 RCRequestId: eac2922a-c00a-11ec-ae27-0050569c35a6
 X-ERROR-ID: eac2922a-c00a-11ec-ae27-0050569c35a6
 X-Rate-Limit-Group: medium
 X-Rate-Limit-Limit: 40
 X-Rate-Limit-Remaining: 39
 X-Rate-Limit-Window: 60
 RoutingKey: IAD01P10
    
 {
   "errorCode":"SUB-521",
   "message":"WebHook is not reachable",
   "errors":[
     {
       "errorCode":"SUB-521",
       "message":"WebHook is not reachable"
     }
   ]
 }

Even the incoming request, to check the address/endpoint, don't come anymore.

I've checked and I definitely can hit the address/endpoint from external.

on Apr 25, 2022 at 4:45pm   •  0 likes

Did you see Yatin's comment below? This is the most likely reason for the problem you are having. Can you share the URL so we can see if we can hit it?

on Apr 25, 2022 at 4:52pm   •  0 likes

I see now that you have shared this info. And it does appear accessible from my machine. I am not sure why RingCentral is saying it is not. You may want to escalate this issue to our developer support team so they can take a closer look.

1 Answer
answered on Apr 19, 2022 at 8:05pm  

Could it be possible that your server receiving the webhook is behind some firewall or in a private network?
You might be able to hit it since you are part of the same network
Could you try hitting the webhook from a public network just to be sure?
Also, make sure your webhook endpoint responds within 3 seconds when receiving a GET request so that RingCentral knows it's up and running


 0
on May 9, 2022 at 4:25pm   •  0 likes

I've checked by 'https://portchecker.co' if my '6f48022e8fe2.sn.mynetname.net:3333' is accessible from external - the port is OPEN.

But I still have (without any incomming request):


com.ringcentral.RestException: HTTP Response

=============

status code: 400


Server: nginx

Date: Wed, 20 Apr 2022 12:38:45 GMT

Content-Type: application/json

Transfer-Encoding: chunked

Connection: keep-alive

LocalHostInfo: 10.120.28.93__17316@iad41-c01-csg13.c01.ringcentral.com

RCRequestId: cf597584-c0a6-11ec-8ca4-0050569c35a6

X-ERROR-ID: cf597584-c0a6-11ec-8ca4-0050569c35a6

X-Rate-Limit-Group: medium

X-Rate-Limit-Limit: 40

X-Rate-Limit-Remaining: 39

X-Rate-Limit-Window: 60

RoutingKey: IAD01P10


{"errorCode":"SUB-521","message":"WebHook is not reachable","errors":[{"errorCode":"SUB-521","message":"WebHook is not reachable"}]}


HTTP Request

============

HTTP POST https://platform.ringcentral.com/restapi/v1.0/subscription


Authorization: ??

X-User-Agent: RC-JAVA-SDK Java 1.8.0_221 Windows 2003


{"eventFilters":["/restapi/v1.0/glip/webhooks"],"deliveryMode":{"transportType":"WebHook","address":"https://6f48022e8fe2.sn.mynetname.net:3333/","encryption":true,"verificationToken":"******"},"expiresIn":63072000}

at com.ringcentral.RestClient.requestRaw(RestClient.java:316)

at com.ringcentral.RestClient.request(RestClient.java:328)

at com.ringcentral.RestClient.request(RestClient.java:257)

at com.ringcentral.RestClient.post(RestClient.java:148)

at com.ringcentral.paths.restapi.subscription.Index.post(Index.java:49)

on May 9, 2022 at 11:12pm   •  0 likes

Hi @Oleg Zaiat
It's not about the port being open but the URL being inconsistent
I have had a discussion with the engineering team and they all have come back with the response that the WebHook URL is not responding or is responding inconsistently.

We have less strict restrictions in the sandbox environment and we might let the webhook through even though it is inconsistently, but we cannot do the same in production

on May 10, 2022 at 8:28am   •  0 likes

Well, before the responding, the connection should be established, right.

According to the specs, which defines consistence of the webhook url ( https://developers.ringcentral.com/guide/notifications/webhooks/creating-webhooks )

only response timeout is specified without a connection timeout.

Let's say the 3000 milliseconds, mentioned in the documentaion, is the total timeout connection+response.

Then the question is why for the sandbox it works each time ( https://developers.ringcentral.com/api-reference/Subscriptions/createSubscription ) and the response even from the API ( https://platform.devtest.ringcentral.com/restapi/v1.0/subscription ) is around ~2500milliseconds which anyway is less then 3000milliseconds and for the production environment even the connection hasn't been established to webhook URL ?

I can't found anywhere in the documentation is specified the restriction for sandbox ,regarding to connection/response timeout or other things differences to production environment.

on May 10, 2022 at 9:39am   •  0 likes

The backend logic doesn't just check the connection timeout but has a bunch of other checks (a few of them are related to TLS standard)
The sandbox environment is a little forgiving in such checks and does not enforce hard checks on TLS standards
That is just one set of checks that I know of but the production does enforce a few more checks. Because of this, assuming that something works on sandbox means that the webhook back end is set up perfectly might not be an accurate

on May 10, 2022 at 10:36am   •  0 likes

I agree that for sandbox environment is not necessary to have TLS configured.

But, I'm speaking about production environment, all the mandatory configuration has been made, actually it could be easy check by https://decoder.link/sslchecker/6f48022e8fe2.sn.mynetname.net/3333 like it mentioned in the documentation https://developers.ringcentral.com/guide/notifications/webhooks/configuring-tls-ssl.

But, you know, before any kind of checks like SSL/TLS/CERT, the socket CONNECTION should be established, between RC and WebHook URL, agree ?

on Apr 25, 2022 at 4:46pm   •  0 likes

I've checked by 'https://portchecker.co' if my '6f48022e8fe2.sn.mynetname.net:3333' is accessible from external - the port is OPEN.

But I still have (without any incomming request):


com.ringcentral.RestException: HTTP Response

=============

status code: 400


Server: nginx

Date: Wed, 20 Apr 2022 12:38:45 GMT

Content-Type: application/json

Transfer-Encoding: chunked

Connection: keep-alive

LocalHostInfo: 10.120.28.93__17316@iad41-c01-csg13.c01.ringcentral.com

RCRequestId: cf597584-c0a6-11ec-8ca4-0050569c35a6

X-ERROR-ID: cf597584-c0a6-11ec-8ca4-0050569c35a6

X-Rate-Limit-Group: medium

X-Rate-Limit-Limit: 40

X-Rate-Limit-Remaining: 39

X-Rate-Limit-Window: 60

RoutingKey: IAD01P10


{"errorCode":"SUB-521","message":"WebHook is not reachable","errors":[{"errorCode":"SUB-521","message":"WebHook is not reachable"}]}


HTTP Request

============

HTTP POST https://platform.ringcentral.com/restapi/v1.0/subscription


Authorization: ??

X-User-Agent: RC-JAVA-SDK Java 1.8.0_221 Windows 2003


{"eventFilters":["/restapi/v1.0/glip/webhooks"],"deliveryMode":{"transportType":"WebHook","address":"https://6f48022e8fe2.sn.mynetname.net:3333/","encryption":true,"verificationToken":"******"},"expiresIn":63072000}

at com.ringcentral.RestClient.requestRaw(RestClient.java:316)

at com.ringcentral.RestClient.request(RestClient.java:328)

at com.ringcentral.RestClient.request(RestClient.java:257)

at com.ringcentral.RestClient.post(RestClient.java:148)

at com.ringcentral.paths.restapi.subscription.Index.post(Index.java:49)


on Apr 25, 2022 at 4:46pm   •  0 likes

I've checked by 'https://portchecker.co' if my '6f48022e8fe2.sn.mynetname.net:3333' is accessible from external - the port is OPEN.

But I still have (without any incomming request):


com.ringcentral.RestException: HTTP Response

=============

status code: 400


Server: nginx

Date: Wed, 20 Apr 2022 12:38:45 GMT

Content-Type: application/json

Transfer-Encoding: chunked

Connection: keep-alive

LocalHostInfo: 10.120.28.93__17316@iad41-c01-csg13.c01.ringcentral.com

RCRequestId: cf597584-c0a6-11ec-8ca4-0050569c35a6

X-ERROR-ID: cf597584-c0a6-11ec-8ca4-0050569c35a6

X-Rate-Limit-Group: medium

X-Rate-Limit-Limit: 40

X-Rate-Limit-Remaining: 39

X-Rate-Limit-Window: 60

RoutingKey: IAD01P10


{"errorCode":"SUB-521","message":"WebHook is not reachable","errors":[{"errorCode":"SUB-521","message":"WebHook is not reachable"}]}


HTTP Request

============

HTTP POST https://platform.ringcentral.com/restapi/v1.0/subscription


Authorization: ??

X-User-Agent: RC-JAVA-SDK Java 1.8.0_221 Windows 2003


{"eventFilters":["/restapi/v1.0/glip/webhooks"],"deliveryMode":{"transportType":"WebHook","address":"https://6f48022e8fe2.sn.mynetname.net:3333/","encryption":true,"verificationToken":"******"},"expiresIn":63072000}

at com.ringcentral.RestClient.requestRaw(RestClient.java:316)

at com.ringcentral.RestClient.request(RestClient.java:328)

at com.ringcentral.RestClient.request(RestClient.java:257)

at com.ringcentral.RestClient.post(RestClient.java:148)

at com.ringcentral.paths.restapi.subscription.Index.post(Index.java:49)

on Apr 27, 2022 at 9:23am   •  0 likes

We conducted an investigation and have discovered and directly observed that the URL being used for the webhook is unreliable. Sometimes when we accessed it the endpoint would return instantly. But from time to time we saw that the connection took longer than the requisite three-second response time, sometimes taking up to 10 seconds, or timing out completely. We observed this both calling the endpoint from North America and Europe. It is hard to diagnose the problem further, but this suggests a networking issue is the root cause.



A new Community is coming to RingCentral!

Posts are currently read-only as we transition into our new platform.

We thank you for your patience
during this downtime.

Try Workflow Builder

Did you know you can easily automate tasks like responding to SMS, team messages, and more? Plus it's included with RingCentral Video and RingEX plans!

Try RingCentral Workflow Builder

PRODUCTS
RingEX
Message
Video
Phone
OPEN ECOSYSTEM
Developer Platform
APIs
Integrated Apps
App Gallery
Developer support
Games and rewards

RESOURCES
Resource center
Blog
Product Releases
Accessibility
QUICK LINKS
App Download
RingCentral App login
Admin Portal Login
Contact Sales
© 1999-2024 RingCentral, Inc. All rights reserved. Legal Privacy Notice Site Map Contact Us