Skip to content

Laravel + websockets: Unhandled promise rejection with TypeError #504

@ryanbaldisco

Description

@ryanbaldisco

I recently updated my laravel project from (laravel/framework) 10.0 to 10.18, as well as all of my packages. Everything was updated smoothly without errors or warnings. However, when I tried to run the websockets server php artisan websockets:serve I got this error below.

Unhandled promise rejection with TypeError: React\Http\Io\ClientRequestStream::closeError(): Argument #1 ($error) must be of type Exception, Error given, called in /path/to/laravel/vendor/react/promise/src/Internal/RejectedPromise.php on line 73 in /path/to/laravel/vendor/react/http/src/Io/ClientRequestStream.php:238

I tried debugging for hours, but had no luck.
Please, can anyone help me with this? or at least point me to the right direction.

PHP version 8.2.5
Composer version 2.5.8

Stack trace:

#0 /path/to/laravel/vendor/react/promise/src/Internal/RejectedPromise.php(73): React\Http\Io\ClientRequestStream->closeError(Object(Error))
#1 /path/to/laravel/vendor/react/promise/src/Promise.php(43): React\Promise\Internal\RejectedPromise->then(Object(Closure), Array)
#2 /path/to/laravel/vendor/react/http/src/Io/ClientRequestStream.php(67): React\Promise\Promise->then(Object(Closure), Array)
#3 /path/to/laravel/vendor/react/http/src/Io/ClientRequestStream.php(122): React\Http\Io\ClientRequestStream->writeHead()
#4 /path/to/laravel/vendor/react/http/src/Io/ClientRequestStream.php(135): React\Http\Io\ClientRequestStream->write('{"app_id":"6087...')
#5 /path/to/laravel/vendor/react/http/src/Io/Sender.php(152): React\Http\Io\ClientRequestStream->end('{"app_id":"6087...')
#6 /path/to/laravel/vendor/react/http/src/Io/Transaction.php(146): React\Http\Io\Sender->send(Object(React\Http\Message\Request))
#7 /path/to/laravel/vendor/react/http/src/Io/Transaction.php(83): React\Http\Io\Transaction->next(Object(React\Http\Message\Request), Object(React\Promise\Deferred), Object(React\Http\Io\ClientRequestState))
#8 /path/to/laravel/vendor/react/http/src/Browser.php(853): React\Http\Io\Transaction->send(Object(React\Http\Message\Request))
#9 /path/to/laravel/vendor/react/http/src/Browser.php(176): React\Http\Browser->requestMayBeStreaming('POST', 'http://localhos...', Array, Object(GuzzleHttp\Psr7\Stream))
#10 /path/to/laravel/vendor/beyondcode/laravel-websockets/src/Statistics/Logger/HttpStatisticsLogger.php(81): React\Http\Browser->post('http://localhos...', Array, Object(GuzzleHttp\Psr7\Stream))
#11 /path/to/laravel/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(353): BeyondCode\LaravelWebSockets\Statistics\Logger\HttpStatisticsLogger->save()
#12 /path/to/laravel/vendor/beyondcode/laravel-websockets/src/Console/StartWebSocketServer.php(75): Illuminate\Support\Facades\Facade::__callStatic('save', Array)
#13 /path/to/laravel/vendor/react/event-loop/src/Timer/Timers.php(101): BeyondCode\LaravelWebSockets\Console\StartWebSocketServer->BeyondCode\LaravelWebSockets\Console\{closure}(Object(React\EventLoop\Timer\Timer))
#14 /path/to/laravel/vendor/react/event-loop/src/StreamSelectLoop.php(185): React\EventLoop\Timer\Timers->tick()
#15 /path/to/laravel/vendor/cboden/ratchet/src/Ratchet/Server/IoServer.php(74): React\EventLoop\StreamSelectLoop->run()
#16 /path/to/laravel/vendor/beyondcode/laravel-websockets/src/Console/StartWebSocketServer.php(155): Ratchet\Server\IoServer->run()
#17 /path/to/laravel/vendor/beyondcode/laravel-websockets/src/Console/StartWebSocketServer.php(52): BeyondCode\LaravelWebSockets\Console\StartWebSocketServer->startWebSocketServer()
#18 /path/to/laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): BeyondCode\LaravelWebSockets\Console\StartWebSocketServer->handle()
#19 /path/to/laravel/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#20 /path/to/laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
#21 /path/to/laravel/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#22 /path/to/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php(662): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#23 /path/to/laravel/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\Container\Container->call(Array)
#24 /path/to/laravel/vendor/symfony/console/Command/Command.php(326): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#25 /path/to/laravel/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#26 /path/to/laravel/vendor/symfony/console/Application.php(1081): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#27 /path/to/laravel/vendor/symfony/console/Application.php(320): Symfony\Component\Console\Application->doRunCommand(Object(BeyondCode\LaravelWebSockets\Console\StartWebSocketServer), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#28 /path/to/laravel/vendor/symfony/console/Application.php(174): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#29 /path/to/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(201): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#30 /path/to/laravel/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#31 {main}

TIA

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions