question

Nigel McLaughlin avatar image
Nigel McLaughlin asked Anirban answered

Authentication Intermittently failing PHP SDK

I have an issue that can be consistently recreated via the PHP SDK.

When trying to authenticate my Sandbox account, 2 out of 3 login attempts will fail with an unrecoverable error.

[02-Dec-2019 15:50:36 Australia/Melbourne] PHP Fatal error:  Uncaught Exception: Serialization of 'Closure' is not allowed in [no active file]:0
Stack trace:
#0 {main}
  thrown in [no active file] on line 0
[02-Dec-2019 15:50:39 Australia/Melbourne] PHP Fatal error:  Uncaught Exception: Serialization of 'Closure' is not allowed in [no active file]:0
Stack trace:
#0 {main}
  thrown in [no active file] on line 0
[02-Dec-2019 15:50:42 Australia/Melbourne] PHP Fatal error:  Uncaught Exception: Serialization of 'Closure' is not allowed in [no active file]:0
Stack trace:
#0 {main}
  thrown in [no active file] on line 0
[02-Dec-2019 15:50:45 Australia/Melbourne] PHP Fatal error:  Uncaught Exception: Serialization of 'Closure' is not allowed in [no active file]:0
Stack trace:
#0 {main}
  thrown in [no active file] on line 0
[02-Dec-2019 15:50:47 Australia/Melbourne] PHP Fatal error:  Uncaught Exception: Serialization of 'Closure' is not allowed in [no active file]:0
Stack trace:
#0 {main}
  thrown in [no active file] on line 0
[02-Dec-2019 15:50:51 Australia/Melbourne] PHP Fatal error:  Uncaught Exception: Response has unsuccessful status in /vendor/ringcentral/ringcentral-php/src/Http/Client.php:44
Stack trace:
#0 /vendor/ringcentral/ringcentral-php/src/Platform/Platform.php(329): RingCentral\SDK\Http\Client->send(Object(GuzzleHttp\Psr7\Request))
#1 /vendor/ringcentral/ringcentral-php/src/Platform/Platform.php(465): RingCentral\SDK\Platform\Platform->sendRequest(Object(GuzzleHttp\Psr7\Request), Array)
#2 /vendor/ringcentral/ringcentral-php/src/Platform/Platform.php(221): RingCentral\SDK\Platform\Platform->requestToken('/restapi/oauth/...', Array)
#3 /_classes/TelephonyRingCentral.class.php(55): RingCentral\SDK\Platform\Platform->login(Array, '', 'some_password')
#4 /Users/nigelmclaughlin/Documents/WIP/REAS_ in /vendor/ringcentral/ringcentral-php/src/Http/Client.php on line 52

The credentials haven't changed in between. If I try again, sometimes it's successful and sometimes it isn't.

Has anyone else experienced this issue?

authentication
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Khadhar Koneti avatar image
Khadhar Koneti answered

Hi, This is purely a serialization issue. Are you using Closure or it is coming from PHP SDK? Please have a look at the below link.

https://stackoverflow.com/questions/13734224/exception-serialization-of-closure-is-not-allowed

Meanwhile, you can open a support ticket with the RingCentral developer support team.

1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Nigel McLaughlin avatar image
Nigel McLaughlin answered Phong Vu commented

After digging into the SDK code it turns out it's returning a 429 error due to rate limiting and throwing an exception due to this.

1 comment
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Phong Vu avatar image Phong Vu ♦♦ commented ·

In that case, read this blog article and change your code to solve your problem.

https://medium.com/ringcentral-developers/ringcentral-api-rate-limit-explained-2280fe53cb16

0 Likes 0 ·
Phong Vu avatar image
Phong Vu answered

How to deal with 429 response would be the answer.

1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Anirban avatar image
Anirban answered

429 is as you discovered a rate limiting issue which actually restrict the API from multiple call for a certain number of time.

There is an official docs available which will help you to understand how this rate limit works and how can you avoid or fix with usage policy :

https://developers.ringcentral.com/guide/basics/rate-limits

1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Developer sandbox tools

Using the RingCentral Phone for Desktop, you can dial or receive test calls, send and receive test SMS or Fax messages in your sandbox environment.

Download RingCentral Phone for Desktop:

Tip: switch to the "sandbox mode" before logging in the app:

  • On MacOS: press "fn + command + f2" keys
  • On Windows: press "Ctrl + F2" keys