Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Totally Broken With Guzzle 5 #57

Closed
GrahamCampbell opened this issue Oct 24, 2014 · 12 comments
Closed

Totally Broken With Guzzle 5 #57

GrahamCampbell opened this issue Oct 24, 2014 · 12 comments

Comments

@GrahamCampbell
Copy link
Member

[2014-10-24 16:16:42] production.CRITICAL: exception 'ErrorException' with message 'Argument 4 passed to GuzzleHttp\Command\Guzzle\Subscriber\ProcessResponse::visitOuterObject() must implement interface GuzzleHttp\Message\ResponseInterface, null given, called in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle-services\src\Subscriber\ProcessResponse.php on line 101 and defined' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle-services\src\Subscriber\ProcessResponse.php:143
Stack trace:
#0 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle-services\src\Subscriber\ProcessResponse.php(143): Illuminate\Exception\Handler->handleError(4096, 'Argument 4 pass...', 'C:\\Program File...', 143, Array)
#1 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle-services\src\Subscriber\ProcessResponse.php(101): GuzzleHttp\Command\Guzzle\Subscriber\ProcessResponse->visitOuterObject(Object(GuzzleHttp\Command\Guzzle\Parameter), Array, Object(GuzzleHttp\Command\Command), NULL, Array)
#2 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle-services\src\Subscriber\ProcessResponse.php(90): GuzzleHttp\Command\Guzzle\Subscriber\ProcessResponse->visit(Object(GuzzleHttp\Command\Guzzle\Parameter), Object(GuzzleHttp\Command\Event\ProcessEvent))
#3 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\Event\Emitter.php(109): GuzzleHttp\Command\Guzzle\Subscriber\ProcessResponse->onProcess(Object(GuzzleHttp\Command\Event\ProcessEvent), 'process')
#4 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\command\src\AbstractClient.php(271): GuzzleHttp\Event\Emitter->emit('process', Object(GuzzleHttp\Command\Event\ProcessEvent))
#5 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\command\src\AbstractClient.php(255): GuzzleHttp\Command\AbstractClient->emitProcess(Object(GuzzleHttp\Command\CommandTransaction))
#6 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\Event\Emitter.php(109): GuzzleHttp\Command\AbstractClient->GuzzleHttp\Command\{closure}(Object(GuzzleHttp\Event\EndEvent), 'end')
#7 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\RequestFsm.php(206): GuzzleHttp\Event\Emitter->emit('end', Object(GuzzleHttp\Event\EndEvent))
#8 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\RequestFsm.php(91): GuzzleHttp\RequestFsm->end(Object(GuzzleHttp\Transaction))
#9 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\RingBridge.php(121): GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
#10 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\RequestFsm.php(140): GuzzleHttp\RingBridge::completeRingResponse(Object(GuzzleHttp\Transaction), Array, Object(GuzzleHttp\Message\MessageFactory), Object(GuzzleHttp\RequestFsm))
#11 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\react\promise\src\FulfilledPromise.php(24): GuzzleHttp\RequestFsm->GuzzleHttp\{closure}(Array)
#12 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\ringphp\src\Future\CompletedFutureValue.php(55): React\Promise\FulfilledPromise->then(Object(Closure), NULL, NULL)
#13 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\Message\FutureResponse.php(43): GuzzleHttp\Ring\Future\CompletedFutureValue->then(Object(Closure), NULL, NULL)
#14 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\RequestFsm.php(143): GuzzleHttp\Message\FutureResponse::proxy(Object(GuzzleHttp\Ring\Future\CompletedFutureArray), Object(Closure))
#15 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\RequestFsm.php(91): GuzzleHttp\RequestFsm->send(Object(GuzzleHttp\Transaction))
#16 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\Client.php(256): GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
#17 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\command\src\AbstractClient.php(88): GuzzleHttp\Client->send(Object(GuzzleHttp\Message\Request))
#18 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\command\src\AbstractClient.php(76): GuzzleHttp\Command\AbstractClient->execute(Object(GuzzleHttp\Command\Command))
#19 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\graham-campbell\cloudflare-api\src\Models\AbstractModel.php(92): GuzzleHttp\Command\AbstractClient->__call('stats', Array)
#20 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\graham-campbell\cloudflare-api\src\Models\AbstractModel.php(92): GuzzleHttp\Command\Guzzle\GuzzleClient->stats(Array)
#21 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\graham-campbell\cloudflare-api\src\Models\Zone.php(602): GrahamCampbell\CloudFlareAPI\Models\AbstractModel->get('stats', Array, '20')
#22 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\graham-campbell\cloudflare-api\src\Models\Zone.php(73): GrahamCampbell\CloudFlareAPI\Models\Zone->stat(20, 'trafficBreakdow...')
#23 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\graham-campbell\cloudflare\src\Controllers\CloudFlareController.php(96): GrahamCampbell\CloudFlareAPI\Models\Zone->getTraffic()
#24 [internal function]: GrahamCampbell\CloudFlare\Controllers\CloudFlareController->getData()
#25 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\laravel\framework\src\Illuminate\Routing\Controller.php(231): call_user_func_array(Array, Array)
#26 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(5776): Illuminate\Routing\Controller->callAction('getData', Array)
#27 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(5764): Illuminate\Routing\ControllerDispatcher->call(Object(GrahamCampbell\CloudFlare\Controllers\CloudFlareController), Object(Illuminate\Routing\Route), 'getData')
#28 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(4971): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'GrahamCampbell\\...', 'getData')
#29 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#30 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(5329): call_user_func_array(Object(Closure), Array)
#31 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(4996): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#32 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(4984): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#33 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(715): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#34 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(696): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))
#35 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\barryvdh\laravel-debugbar\src\Middleware.php(33): Illuminate\Foundation\Application->handle(Object(Illuminate\Http\Request), 1, true)
#36 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(7744): Barryvdh\Debugbar\Middleware->handle(Object(Illuminate\Http\Request), 1, true)
#37 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(8351): Illuminate\Session\Middleware->handle(Object(Illuminate\Http\Request), 1, true)
#38 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(8298): Illuminate\Cookie\Queue->handle(Object(Illuminate\Http\Request), 1, true)
#39 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(10957): Illuminate\Cookie\Guard->handle(Object(Illuminate\Http\Request), 1, true)
#40 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(657): Stack\StackedHttpKernel->handle(Object(Illuminate\Http\Request))
#41 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\public\index.php(57): Illuminate\Foundation\Application->run()
#42 {main}

Next exception 'GuzzleHttp\Command\Exception\CommandException' with message 'Error executing command: Argument 4 passed to GuzzleHttp\Command\Guzzle\Subscriber\ProcessResponse::visitOuterObject() must implement interface GuzzleHttp\Message\ResponseInterface, null given, called in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle-services\src\Subscriber\ProcessResponse.php on line 101 and defined' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\command\src\AbstractClient.php:171
Stack trace:
#0 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\command\src\AbstractClient.php(275): GuzzleHttp\Command\AbstractClient->createCommandException(Object(GuzzleHttp\Command\CommandTransaction))
#1 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\command\src\AbstractClient.php(255): GuzzleHttp\Command\AbstractClient->emitProcess(Object(GuzzleHttp\Command\CommandTransaction))
#2 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\Event\Emitter.php(109): GuzzleHttp\Command\AbstractClient->GuzzleHttp\Command\{closure}(Object(GuzzleHttp\Event\EndEvent), 'end')
#3 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\RequestFsm.php(206): GuzzleHttp\Event\Emitter->emit('end', Object(GuzzleHttp\Event\EndEvent))
#4 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\RequestFsm.php(91): GuzzleHttp\RequestFsm->end(Object(GuzzleHttp\Transaction))
#5 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\RingBridge.php(121): GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
#6 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\RequestFsm.php(140): GuzzleHttp\RingBridge::completeRingResponse(Object(GuzzleHttp\Transaction), Array, Object(GuzzleHttp\Message\MessageFactory), Object(GuzzleHttp\RequestFsm))
#7 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\react\promise\src\FulfilledPromise.php(24): GuzzleHttp\RequestFsm->GuzzleHttp\{closure}(Array)
#8 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\ringphp\src\Future\CompletedFutureValue.php(55): React\Promise\FulfilledPromise->then(Object(Closure), NULL, NULL)
#9 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\Message\FutureResponse.php(43): GuzzleHttp\Ring\Future\CompletedFutureValue->then(Object(Closure), NULL, NULL)
#10 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\RequestFsm.php(143): GuzzleHttp\Message\FutureResponse::proxy(Object(GuzzleHttp\Ring\Future\CompletedFutureArray), Object(Closure))
#11 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\RequestFsm.php(91): GuzzleHttp\RequestFsm->send(Object(GuzzleHttp\Transaction))
#12 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\guzzle\src\Client.php(256): GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))
#13 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\command\src\AbstractClient.php(88): GuzzleHttp\Client->send(Object(GuzzleHttp\Message\Request))
#14 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\guzzlehttp\command\src\AbstractClient.php(76): GuzzleHttp\Command\AbstractClient->execute(Object(GuzzleHttp\Command\Command))
#15 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\graham-campbell\cloudflare-api\src\Models\AbstractModel.php(92): GuzzleHttp\Command\AbstractClient->__call('stats', Array)
#16 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\graham-campbell\cloudflare-api\src\Models\AbstractModel.php(92): GuzzleHttp\Command\Guzzle\GuzzleClient->stats(Array)
#17 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\graham-campbell\cloudflare-api\src\Models\Zone.php(602): GrahamCampbell\CloudFlareAPI\Models\AbstractModel->get('stats', Array, '20')
#18 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\graham-campbell\cloudflare-api\src\Models\Zone.php(73): GrahamCampbell\CloudFlareAPI\Models\Zone->stat(20, 'trafficBreakdow...')
#19 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\graham-campbell\cloudflare\src\Controllers\CloudFlareController.php(96): GrahamCampbell\CloudFlareAPI\Models\Zone->getTraffic()
#20 [internal function]: GrahamCampbell\CloudFlare\Controllers\CloudFlareController->getData()
#21 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\laravel\framework\src\Illuminate\Routing\Controller.php(231): call_user_func_array(Array, Array)
#22 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(5776): Illuminate\Routing\Controller->callAction('getData', Array)
#23 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(5764): Illuminate\Routing\ControllerDispatcher->call(Object(GrahamCampbell\CloudFlare\Controllers\CloudFlareController), Object(Illuminate\Routing\Route), 'getData')
#24 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(4971): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'GrahamCampbell\\...', 'getData')
#25 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#26 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(5329): call_user_func_array(Object(Closure), Array)
#27 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(4996): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#28 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(4984): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#29 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(715): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#30 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(696): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))
#31 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\vendor\barryvdh\laravel-debugbar\src\Middleware.php(33): Illuminate\Foundation\Application->handle(Object(Illuminate\Http\Request), 1, true)
#32 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(7744): Barryvdh\Debugbar\Middleware->handle(Object(Illuminate\Http\Request), 1, true)
#33 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(8351): Illuminate\Session\Middleware->handle(Object(Illuminate\Http\Request), 1, true)
#34 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(8298): Illuminate\Cookie\Queue->handle(Object(Illuminate\Http\Request), 1, true)
#35 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(10957): Illuminate\Cookie\Guard->handle(Object(Illuminate\Http\Request), 1, true)
#36 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bootstrap\compiled.php(657): Stack\StackedHttpKernel->handle(Object(Illuminate\Http\Request))
#37 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\public\index.php(57): Illuminate\Foundation\Application->run()
#38 {main} [] []

The interesting guzzle stuff happens in here: https://github.com/GrahamCampbell/Laravel-CloudFlare-API/blob/a7ae6e2cfe30af64f967d8235548b62327b2f850/src/Factories/ClientFactory.php.

This used to work with guzzle 4.2 and guzzle services 0.3.0 with guzzle command 0.6.0.

I am currently using guzzle 5.0.1 with guzzle services @0ad83bfcfdf53ee48de506ce8256a85d5d7aff3a and guzzle command 0.7.0.

@mtdowling
Copy link
Member

All the tests pass though: https://travis-ci.org/guzzle/guzzle-services

Is there something missing that needs to be covered?

@GrahamCampbell
Copy link
Member Author

I'll look into it shortly.

@GrahamCampbell
Copy link
Member Author

Ok, my first step is to be 1000% sure that this isn't caused by an issue in my code. This was confirmed by me checking it worked with guzzle 4: GrahamDeprecated/Laravel-CloudFlare-API@468e321. The results from that manual test were that, yes, everything definitely works with guzzle 4.

I then reinstalled guzzle 5, then tried disabling my 2 subscribers to make sure they weren't interfering, and they weren't - disabling them made no difference.

Third step - look for changes to the guzzle classes I'm interacting with - there are no real changes, only changes to type hints.

I'm now going through the guzzle code trying to work out at which point the response variable isn't set correctly...

@GrahamCampbell
Copy link
Member Author

At this point: https://github.com/guzzle/guzzle-services/blob/master/src/Subscriber/ProcessResponse.php#L98, the response variable is null. What's going on there?

@GrahamCampbell
Copy link
Member Author

Ahh. Your code comment says that this is allowed to be null if there was an http error. https://github.com/guzzle/command/blob/master/src/Event/ProcessEvent.php#L45

@GrahamCampbell
Copy link
Member Author

But then you assumed that it was always a response object in that other subscriber. Also, I'm struggling to see how there could have been an http error?

@GrahamCampbell
Copy link
Member Author

I'll try attaching the log subscriber later tonight.

@GrahamCampbell
Copy link
Member Author

OH, JUST WOW!

[2014-10-24 18:10:39] cloudflare-api.CRITICAL: GRAHAM-WIN7 Guzzle/5.0.1 curl/7.36.0 PHP/5.6.0 - [2014-10-24T18:10:39+00:00] "GET /api_json.html?a=stats&tkn=349f0d06c82cf202b46fc0efa9c44cb8079cc&email=a%40starbs.net&z=grahamjcampbell.co.uk&interval=20 /" NULL NULL {"request":"[object] (GuzzleHttp\\Message\\Request: {})","response":null,"exception":"[object] (GuzzleHttp\\Exception\\RequestException: cURL error 60: SSL certificate problem: unable to get local issuer certificate at C:\\Program Files (x86)\\EasyPHP-DevServer-14.1VC11\\data\\localweb\\vendor\\guzzlehttp\\guzzle\\src\\Exception\\RequestException.php:51, GuzzleHttp\\Ring\\Exception\\RingException: cURL error 60: SSL certificate problem: unable to get local issuer certificate at C:\\Program Files (x86)\\EasyPHP-DevServer-14.1VC11\\data\\localweb\\vendor\\guzzlehttp\\ringphp\\src\\Client\\CurlFactory.php:129)"} []

@GrahamCampbell
Copy link
Member Author

Although this is due to a misconfiguration of php on my part, guzzle should still handle this error correctly, instead of just a cryptic error that took a fair bit of digging to work out what was going on.

@mtdowling
Copy link
Member

Seems like there just needs to be a conditional check in https://github.com/guzzle/guzzle-services/blob/master/src/Subscriber/ProcessResponse.php#L98 that ensures a response is present. Once added, the underlying HTTP exception will eventually be thrown.

@mtdowling
Copy link
Member

This is now fixed and I added a test case.

@GrahamCampbell
Copy link
Member Author

Great. Thanks. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants