laravel / reverb

Laravel Reverb provides a real-time WebSocket communication backend for Laravel applications.
https://reverb.laravel.com
MIT License
921 stars 62 forks source link

Dont respect max_message_size #83

Closed mttzzz closed 3 months ago

mttzzz commented 3 months ago

Reverb Version

@beta

Laravel Version

11.0

PHP Version

8.3.3

Description

     [
                'key' => 'test',
                'secret' => 'test',
                'app_id' => 12347,
                'options' => [
                    'host' => '0.0.0.0',
                    'port' => 8080,
                    'scheme' => 'http',
                    'useTLS' => false,
                ],
                'allowed_origins' => ['*'],
                'ping_interval' => 60,
                'max_message_size' => 2500000,
            ],

Illuminate\Broadcasting\BroadcastException Pusher error: Payload too large..

Steps To Reproduce

  1. install latest laravel
  2. intall latest reverb
  3. set max_message_size 2500000 (this is 2.5 Megabytes ??)
  4. if sent > 11kb payload. get error
mttzzz commented 3 months ago

I think problem here: Laravel\Reverb\Servers\Reverb\Http\Request.php;

    /**
     * The maximum number of allowed bytes for the request.
     *
     * @var int
     */
    const MAX_SIZE = 10000;

    /**
     * Turn the raw message into a Psr7 request.
     */
    public static function from(string $message, Connection $connection): ?RequestInterface
    {
        $connection->appendToBuffer($message);

        if ($connection->bufferLength() > static::MAX_SIZE) {
            throw new OverflowException('Maximum HTTP buffer size of '.static::MAX_SIZE.'exceeded.');
        }

        if (static::isEndOfMessage($buffer = $connection->buffer())) {
            $connection->clearBuffer();

            return Message::parseRequest($buffer);
        }

        return null;
    }
mttzzz commented 3 months ago

Yes i changed const MAX_SIZE = 10000; to const MAX_SIZE = 250000; and no error.

mttzzz commented 3 months ago

What kind of info? MAX_SIZE hardcoded. And config value dont used.

driesvints commented 3 months ago

@mttzzz Joe will have a look when he has time.

joedixon commented 3 months ago

You're right, this is hard-coded at the HTTP request layer and dynamic and the WebSocket message layer. I will get a fix up for this as soon as I can.

tarreislam commented 3 months ago

You're right, this is hard-coded at the HTTP request layer and dynamic and the WebSocket message layer. I will get a fix up for this as soon as I can.

Thats great, my messages are just above 10k.

Do you guys have any release cycle? When can we expect a new beta release with all these fixes

kind regards

joedixon commented 3 months ago

@mttzzz I'm not actually sure that is the issue. I just wrote some tests and the messages do respect the limit in config. It's only the initial HTTP request which sets up the WebSocket or handles the API requests which will be capped at the hard-coded 10kb.

https://github.com/laravel/reverb/pull/87 The first test here, the app has a 10KB limit and the app in the second test has a 1MB limit.

Which type of request are you seeing fail?

joedixon commented 3 months ago

@tarreislam we're releasing pretty ad-hoc at the moment, but will eventually fall into the weekly release cycle.

samuelrac commented 3 months ago

I have the same problem, but when I changed the CONST MAX_SIZE to 1000000, I started receiving the following error:

Pusher error: Internal server error..

This error is being caused by this exception:

[2024-03-14 15:16:40] local.ERROR: TypeError: Laravel\Reverb\Protocols\Pusher\Http\Controllers\EventsController::validator(): Argument #1 ($payload) must be of type array, null given, called in /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/reverb/src/Protocols/Pusher/Http/Controllers/EventsController.php on line 30 and defined in /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/reverb/src/Protocols/Pusher/Http/Controllers/EventsController.php:60
Stack trace:
#0 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/reverb/src/Protocols/Pusher/Http/Controllers/EventsController.php(30): Laravel\Reverb\Protocols\Pusher\Http\Controllers\EventsController->validator(NULL)
#1 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/reverb/src/Servers/Reverb/Http/Router.php(69): Laravel\Reverb\Protocols\Pusher\Http\Controllers\EventsController->__invoke(Object(GuzzleHttp\Psr7\Request), Object(Laravel\Reverb\Servers\Reverb\Http\Connection), '353418')
#2 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/reverb/src/Servers/Reverb/Http/Server.php(58): Laravel\Reverb\Servers\Reverb\Http\Router->dispatch(Object(GuzzleHttp\Psr7\Request), Object(Laravel\Reverb\Servers\Reverb\Http\Connection))
#3 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/reverb/src/Servers/Reverb/Http/Server.php(99): Laravel\Reverb\Servers\Reverb\Http\Server->handleRequest('POST /apps/3534...', Object(Laravel\Reverb\Servers\Reverb\Http\Connection))
#4 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/evenement/evenement/src/EventEmitterTrait.php(143): Laravel\Reverb\Servers\Reverb\Http\Server->Laravel\Reverb\Servers\Reverb\Http\{closure}('POST /apps/3534...')
#5 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/react/stream/src/Util.php(71): Evenement\EventEmitter->emit('data', Array)
#6 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/evenement/evenement/src/EventEmitterTrait.php(143): React\Stream\Util::React\Stream\{closure}('POST /apps/3534...')
#7 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/react/stream/src/DuplexResourceStream.php(196): Evenement\EventEmitter->emit('data', Array)
#8 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/react/event-loop/src/ExtEvLoop.php(96): React\Stream\DuplexResourceStream->handleData(Resource id #885)
#9 [internal function]: React\EventLoop\ExtEvLoop->React\EventLoop\{closure}()
#10 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/react/event-loop/src/ExtEvLoop.php(208): EvLoop->run(2)
#11 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/reverb/src/Servers/Reverb/Http/Server.php(39): React\EventLoop\ExtEvLoop->run()
#12 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/reverb/src/Servers/Reverb/Console/Commands/StartServer.php(70): Laravel\Reverb\Servers\Reverb\Http\Server->start()
#13 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Laravel\Reverb\Servers\Reverb\Console\Commands\StartServer->handle()
#14 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#15 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
#16 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#17 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/framework/src/Illuminate/Container/Container.php(662): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#18 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/framework/src/Illuminate/Console/Command.php(212): Illuminate\Container\Container->call(Array)
#19 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/symfony/console/Command/Command.php(279): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#20 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/framework/src/Illuminate/Console/Command.php(181): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#21 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/symfony/console/Application.php(1049): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#22 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/symfony/console/Application.php(318): Symfony\Component\Console\Application->doRunCommand(Object(Laravel\Reverb\Servers\Reverb\Console\Commands\StartServer), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/symfony/console/Application.php(169): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(196): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1183): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 /Users/samuelrac/stack/whatscompany/grp_ipchat/ipchat-websocket-server/artisan(13): Illuminate\Foundation\Application->handleCommand(Object(Symfony\Component\Console\Input\ArgvInput))
#27 {main}  

The strangest that is intermittent, has time that works and has time that gives error.

It is as if json_decode was unable to transform the string into array

I did the extreme test with 70 paragraphs generated by this site:

https:///loremipsum.io/generator/? n=70&t=p

joedixon commented 3 months ago

It's unlikely anyone will be sending messages that large across the socket server, but we should increase the limit for the event endpoint (used for broadcasting) to be in line with the app max. I will get this updated soon.

samuelrac commented 3 months ago

It's unlikely anyone will be sending messages that large across the socket server, but we should increase the limit for the event endpoint (used for broadcasting) to be in line with the app max. I will get this updated soon.

It's really not common for someone to send such large messages, but my application is a chat, and I don't have control over what arrives in this chat due to the messages arriving via the WhatsApp Business API, I've already caught some errors in my application today due to the payload is too large.

I eagerly await the update for this, thank you very much!

joedixon commented 3 months ago

Made some changes here: https://github.com/laravel/reverb/pull/87/files

Could you give that branch a try and set your desired max_request_size value in config / env?

samuelrac commented 3 months ago

Made some changes here: https://github.com/laravel/reverb/pull/87/files

Could you give that branch a try and set your desired max_request_size value in config / env?

The problem still persists, I noticed that at times the payload arrived incomplete in EventsController::__invoke

I tested with dd($this->body); and at times it arrives halfway and at other times it arrives complete (and at that moment it works) json_decode is unable to parse the string to array and returns null.

If possible, do an extreme test with a large string.

joedixon commented 3 months ago

How large is the string you are sending?

samuelrac commented 3 months ago

How large is the string you are sending?

The string I'm sending is 53.5 KB apart from the other data that comes with it that refers to the socket. However, I need it to hold up to 100KB (without considering the data that comes with the socket)

When I send a very large string, sometimes it gives an Internal Server Error due to the validator error expecting an array and json_decode returning NULL

tarreislam commented 3 months ago

The string I'm sending is 53.5 KB apart from the other data that comes with it that refers to the socket

I agree with this, even if the norm is to send smaller payloads it does not hurt to support larger payloads, even 2 MB should be OK in 2024.

BTW here is how I am handling the error in production. Just until we can adjust the size ourselves 😆. Not recommended

image

samuelrac commented 3 months ago

The string I'm sending is 53.5 KB apart from the other data that comes with it that refers to the socket

I agree with this, even if the norm is to send smaller payloads it does not hurt to support larger payloads, even 2 MB should be OK in 2024.

BTW here is how I am handling the error in production. Just until we can adjust the size ourselves 😆. Not recommended

image

I am also dealing with this problem in production, I configured the server via Forge last night to use Reverb, as Soketi serverless is not working properly and the panel has been down for more than 2 weeks.

I eagerly await resolution of the large payload issue.

tarreislam commented 3 months ago

I know the struggle, I am just happy that laravel finally ships this feature out of the box, I am so sick of soketi. I asked somewhere on their release cycle and it will be ad-hoc for a while, then will fall back to weekly, which is good. Id guess it will be stable enough for production in 1-2 weeks

mttzzz commented 3 months ago

The string I'm sending is 53.5 KB apart from the other data that comes with it that refers to the socket

I agree with this, even if the norm is to send smaller payloads it does not hurt to support larger payloads, even 2 MB should be OK in 2024.

BTW here is how I am handling the error in production. Just until we can adjust the size ourselves 😆. Not recommended

image

Full agreed! I need minimum 250kb payload. 2024! ^))

mttzzz commented 3 months ago

How large is the string you are sending?

The string I'm sending is 53.5 KB apart from the other data that comes with it that refers to the socket. However, I need it to hold up to 100KB (without considering the data that comes with the socket)

When I send a very large string, sometimes it gives an Internal Server Error due to the validator error expecting an array and json_decode returning NULL

After adjusting the MAX_SIZE constant to 200,000 manually, the issues related to '413 Payload Too Large' errors have ceased. However, intermittent occurrences of '500 Internal Server Error' have been observed, leading to occasional crashes of the system's reverb mechanism.

tarreislam commented 3 months ago

How large is the string you are sending?

The string I'm sending is 53.5 KB apart from the other data that comes with it that refers to the socket. However, I need it to hold up to 100KB (without considering the data that comes with the socket) When I send a very large string, sometimes it gives an Internal Server Error due to the validator error expecting an array and json_decode returning NULL

After adjusting the MAX_SIZE constant to 200,000 manually, the issues related to '413 Payload Too Large' errors have ceased. However, intermittent occurrences of '500 Internal Server Error' have been observed, leading to occasional crashes of the system's reverb mechanism.

Yeah I have been debugging that 500 internal server error too and I found it was cuRL getting "empty response" from server, so probably something in reverb.

The devs here are really experienced and will probably get this done sooner or later :)

joedixon commented 3 months ago

@tarreislam @mttzzz Could you give this branch another test: https://github.com/laravel/reverb/pull/87

I think I cracked it now by fixing the code which waits for the complete body of the HTTP request.

tarreislam commented 3 months ago

@tarreislam @mttzzz Could you give this branch another test: #87

I think I cracked it now by fixing the code which waits for the complete body of the HTTP request.

hooray, did you also get the "empty response" from curl that lead you to that conclusion?

samuelrac commented 3 months ago

@tarreislam @mttzzz Could you give this branch another test: #87

I think I cracked it now by fixing the code which waits for the complete body of the HTTP request.

Woow, cool. Now it works great!

When will beta4 be released? 😄

joedixon commented 3 months ago

@tarreislam Just had a gut feeling when I saw one comment stating the payload was invalid.

@samuelrac Glad that's working, but need to do some further testing to make sure the change hasn't impacted anything else, so probably not until next week.

mttzzz commented 3 months ago

@tarreislam @mttzzz Could you give this branch another test: #87

I think I cracked it now by fixing the code which waits for the complete body of the HTTP request.

Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 3 updates, 0 removals
  - Downloading laravel/framework (v11.0.6)
  - Downloading laravel/reverb (dev-fix/max-message-size 02d9878)
  - Upgrading laravel/framework (v11.0.5 => v11.0.6): Extracting archive
  - Upgrading laravel/reverb (v1.0.0-beta2 => dev-fix/max-message-size 02d9878): Extracting archive
  - Upgrading psy/psysh (v0.12.0 => v0.12.1): Extracting archive
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

   TypeError

  Pusher\Pusher::__construct(): Argument #1 ($auth_key) must be of type string, null given, called in C:\Users\kiril\projects\reverb.pushka.biz\vendor\laravel\framework\src\Illuminate\Broadcasting\BroadcastManager.php on line 317

  at vendor\pusher\pusher-php-server\src\Pusher.php:63
     59â–•      * @param ClientInterface|null $client [optional] - a Guzzle client to use for all HTTP requests
     60â–•      *
     61â–•      * @throws PusherException Throws exception if any required dependencies are missing
     62â–•      */
  ➜  63▕     public function __construct(string $auth_key, string $secret, string $app_id, array $options = [], ClientInterface $client = null)
     64â–•     {
     65â–•         $this->check_compatibility();
     66â–•
     67â–•         $useTLS = true;

  1   vendor\laravel\framework\src\Illuminate\Broadcasting\BroadcastManager.php:317
      Pusher\Pusher::__construct(["https"], Object(GuzzleHttp\Client))

  2   vendor\laravel\framework\src\Illuminate\Broadcasting\BroadcastManager.php:295
      Illuminate\Broadcasting\BroadcastManager::pusher()

Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
joedixon commented 3 months ago

@mttzzz I think this issue is unrelated due to fact it's happening before the server has even been started.

Usually it's because you don't have the correct environment variables set when the Pusher SDK instantiates. Can you share your BROADCAST_DRIVER|CONNECTION and and REVERB_ or PUSHER_ prefixed environment variables?

mttzzz commented 3 months ago

@mttzzz I think this issue is unrelated due to fact it's happening before the server has even been started.

Usually it's because you don't have the correct environment variables set when the Pusher SDK instantiates. Can you share your BROADCAST_DRIVER|CONNECTION and and REVERB_ or PUSHER_ prefixed environment variables?

Yes, you right! BROADCAST_CONNECTION=null fix this. I use standalone reverb server. and dont need BROADCAST_CONNECTION on this server

joedixon commented 3 months ago

You will still want to set a BROADCAST_CONENCTION if that server needs to communicate with the standalone Reverb server.

allanmcarvalho commented 3 months ago

Only for feedback... I changed the const value on Request class, and works. I installed with all recommendations from docs on ubuntu (system, nginx, and pecl compile).

For me the unique problem was MAX_SIZE const

mttzzz commented 3 months ago

@tarreislam @mttzzz Could you give this branch another test: #87

I think I cracked it now by fixing the code which waits for the complete body of the HTTP request.

"error": "Pusher error: Payload too large..", payload 26kb - 'max_message_size' => 1000000, hmm.

joedixon commented 3 months ago

@mttzzz where are you seeing that error? Can you send over a screenshot?

joedixon commented 3 months ago

@mttzzz did you also set the max_request_size value in your reverp.php config?

Message size and Request size are two different things.

https://github.com/laravel/reverb/blob/02d9878a3215e42724490951220f76d4292ee5b3/config/reverb.php#L38

mttzzz commented 3 months ago

@mttzzz did you also set the max_request_size value in your reverp.php config?

Message size and Request size are two different things.

https://github.com/laravel/reverb/blob/02d9878a3215e42724490951220f76d4292ee5b3/config/reverb.php#L38

No, i dont set this parameter. Will try. What the diff between? In laravel websockets only one param for size

mttzzz commented 3 months ago

@mttzzz did you also set the max_request_size value in your reverp.php config? Message size and Request size are two different things. https://github.com/laravel/reverb/blob/02d9878a3215e42724490951220f76d4292ee5b3/config/reverb.php#L38

No, i dont set this parameter. Will try. What the diff between? In laravel websockets only one param for size

@joedixon "It worked, thank you."

mttzzz commented 3 months ago

But 500 erorrs continue:

"error": "Pusher error: Internal server error..", "file": "/app/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php", "line": 164

joedixon commented 3 months ago

@mttzzz Can you share any logs from the reverb server?

mttzzz commented 3 months ago

@mttzzz Can you share any logs from the reverb server?

i use standalone reverb server and nothing in logs. In my another server (main) i have this errors. this is sentry log: https://octanepushkabiz.sentry.io/share/issue/f4320a2477f848a099c29aa44bf1fc16/

<?php

return [

    'default' => 'test',

    'connections' => [
        'test' => [
            'driver' => 'pusher',
            'key' => 'test',
            'secret' => 'test',
            'app_id' => '12347',
            'options' => [
                'cluster' => 'eu',
                'host' => 'reverb.test.com',
                'port' => 443,
                'scheme' => 'https',
            ],
joedixon commented 3 months ago

@mttzzz you'll likely need to log the exception being caught on line 60 here: src/Servers/Reverb/Http/Server.php

mttzzz commented 3 months ago

@mttzzz you'll likely need to log the exception being caught on line 60 here: src/Servers/Reverb/Http/Server.php @joedixon I'm sending absolutely identical payloads, 10 times in a row, and 3 times I get a 500 error.

[2024-03-16 16:46:14] production.ERROR: MY error: Undefined array key "info" {"exception":"[object] (ErrorException(code: 0): Undefined array key \"info\" at /app/vendor/laravel/reverb/src/Protocols/Pusher/H
ttp/Controllers/ChannelController.php:22)
[stacktrace]
#0 /app/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(256): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()
#1 /app/vendor/laravel/reverb/src/Protocols/Pusher/Http/Controllers/ChannelController.php(22): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->Illuminate\\Foundation\\Bootstrap\\{closure}()
#2 /app/vendor/laravel/reverb/src/Servers/Reverb/Http/Router.php(69): Laravel\\Reverb\\Protocols\\Pusher\\Http\\Controllers\\ChannelController->__invoke()
#3 /app/vendor/laravel/reverb/src/Servers/Reverb/Http/Server.php(60): Laravel\\Reverb\\Servers\\Reverb\\Http\\Router->dispatch()
#4 /app/vendor/laravel/reverb/src/Servers/Reverb/Http/Server.php(104): Laravel\\Reverb\\Servers\\Reverb\\Http\\Server->handleRequest()
#5 /app/vendor/evenement/evenement/src/EventEmitterTrait.php(143): Laravel\\Reverb\\Servers\\Reverb\\Http\\Server->Laravel\\Reverb\\Servers\\Reverb\\Http\\{closure}()
#6 /app/vendor/react/stream/src/Util.php(71): Evenement\\EventEmitter->emit()
#7 /app/vendor/evenement/evenement/src/EventEmitterTrait.php(143): React\\Stream\\Util::React\\Stream\\{closure}()
#8 /app/vendor/react/stream/src/DuplexResourceStream.php(196): Evenement\\EventEmitter->emit()
#9 /app/vendor/react/event-loop/src/ExtEventLoop.php(267): React\\Stream\\DuplexResourceStream->handleData()
#10 [internal function]: React\\EventLoop\\ExtEventLoop->React\\EventLoop\\{closure}()
#11 /app/vendor/react/event-loop/src/ExtEventLoop.php(205): EventBase->loop()
#12 /app/vendor/laravel/reverb/src/Servers/Reverb/Http/Server.php(41): React\\EventLoop\\ExtEventLoop->run()
#13 /app/vendor/laravel/reverb/src/Servers/Reverb/Console/Commands/StartServer.php(71): Laravel\\Reverb\\Servers\\Reverb\\Http\\Server->start()
#14 /app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Laravel\\Reverb\\Servers\\Reverb\\Console\\Commands\\StartServer->handle()
#15 /app/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#16 /app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\\Container\\Util::unwrapIfClosure()
#17 /app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#18 /app/vendor/laravel/framework/src/Illuminate/Container/Container.php(662): Illuminate\\Container\\BoundMethod::call()
#19 /app/vendor/laravel/framework/src/Illuminate/Console/Command.php(212): Illuminate\\Container\\Container->call()
#20 /app/vendor/symfony/console/Command/Command.php(279): Illuminate\\Console\\Command->execute()
#21 /app/vendor/laravel/framework/src/Illuminate/Console/Command.php(181): Symfony\\Component\\Console\\Command\\Command->run()
#22 /app/vendor/symfony/console/Application.php(1049): Illuminate\\Console\\Command->run()
#23 /app/vendor/symfony/console/Application.php(318): Symfony\\Component\\Console\\Application->doRunCommand()
#24 /app/vendor/symfony/console/Application.php(169): Symfony\\Component\\Console\\Application->doRun()
#25 /app/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(196): Symfony\\Component\\Console\\Application->run()
#26 /app/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1183): Illuminate\\Foundation\\Console\\Kernel->handle()
#27 /app/artisan(13): Illuminate\\Foundation\\Application->handleCommand()
#28 {main}
"}
[2024-03-16 17:15:32] production.ERROR: MY 500 ERROR Laravel\Reverb\Protocols\Pusher\Http\Controllers\EventsController::validator(): Argument #1 ($payload) must be of type array, null given, called in /app/v
endor/laravel/reverb/src/Protocols/Pusher/Http/Controllers/EventsController.php on line 30 {"exception":"[object] (TypeError(code: 0): Laravel\\Reverb\\Protocols\\Pusher\\Http\\Controllers\\EventsController:
:validator(): Argument #1 ($payload) must be of type array, null given, called in /app/vendor/laravel/reverb/src/Protocols/Pusher/Http/Controllers/EventsController.php on line 30 at /app/vendor/laravel/rever
b/src/Protocols/Pusher/Http/Controllers/EventsController.php:60)
[stacktrace]
#0 /app/vendor/laravel/reverb/src/Protocols/Pusher/Http/Controllers/EventsController.php(30): Laravel\\Reverb\\Protocols\\Pusher\\Http\\Controllers\\EventsController->validator()
#1 /app/vendor/laravel/reverb/src/Servers/Reverb/Http/Router.php(69): Laravel\\Reverb\\Protocols\\Pusher\\Http\\Controllers\\EventsController->__invoke()
#2 /app/vendor/laravel/reverb/src/Servers/Reverb/Http/Server.php(59): Laravel\\Reverb\\Servers\\Reverb\\Http\\Router->dispatch()
#3 /app/vendor/laravel/reverb/src/Servers/Reverb/Http/Server.php(100): Laravel\\Reverb\\Servers\\Reverb\\Http\\Server->handleRequest()
#4 /app/vendor/evenement/evenement/src/EventEmitterTrait.php(143): Laravel\\Reverb\\Servers\\Reverb\\Http\\Server->Laravel\\Reverb\\Servers\\Reverb\\Http\\{closure}()
#5 /app/vendor/react/stream/src/Util.php(71): Evenement\\EventEmitter->emit()
#6 /app/vendor/evenement/evenement/src/EventEmitterTrait.php(143): React\\Stream\\Util::React\\Stream\\{closure}()
#7 /app/vendor/react/stream/src/DuplexResourceStream.php(196): Evenement\\EventEmitter->emit()
#8 /app/vendor/react/event-loop/src/ExtEventLoop.php(267): React\\Stream\\DuplexResourceStream->handleData()
#9 [internal function]: React\\EventLoop\\ExtEventLoop->React\\EventLoop\\{closure}()
#10 /app/vendor/react/event-loop/src/ExtEventLoop.php(205): EventBase->loop()
#11 /app/vendor/laravel/reverb/src/Servers/Reverb/Http/Server.php(40): React\\EventLoop\\ExtEventLoop->run()
#12 /app/vendor/laravel/reverb/src/Servers/Reverb/Console/Commands/StartServer.php(71): Laravel\\Reverb\\Servers\\Reverb\\Http\\Server->start()
#13 /app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Laravel\\Reverb\\Servers\\Reverb\\Console\\Commands\\StartServer->handle()
#14 /app/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#15 /app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\\Container\\Util::unwrapIfClosure()
#16 /app/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#17 /app/vendor/laravel/framework/src/Illuminate/Container/Container.php(662): Illuminate\\Container\\BoundMethod::call()
#18 /app/vendor/laravel/framework/src/Illuminate/Console/Command.php(212): Illuminate\\Container\\Container->call()
#19 /app/vendor/symfony/console/Command/Command.php(279): Illuminate\\Console\\Command->execute()
#20 /app/vendor/laravel/framework/src/Illuminate/Console/Command.php(181): Symfony\\Component\\Console\\Command\\Command->run()
#21 /app/vendor/symfony/console/Application.php(1049): Illuminate\\Console\\Command->run()
#22 /app/vendor/symfony/console/Application.php(318): Symfony\\Component\\Console\\Application->doRunCommand()
#23 /app/vendor/symfony/console/Application.php(169): Symfony\\Component\\Console\\Application->doRun()
#24 /app/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(196): Symfony\\Component\\Console\\Application->run()
#25 /app/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1183): Illuminate\\Foundation\\Console\\Kernel->handle()
#26 /app/artisan(13): Illuminate\\Foundation\\Application->handleCommand()
#27 {main}
joedixon commented 3 months ago

Interesting. Just want to confirm this is using my branch which attempts to fix this?

Are you able to share the payload you are sending so I can try to replicate it?

mttzzz commented 3 months ago

Interesting. Just want to confirm this is using my branch which attempts to fix this?

Are you able to share the payload you are sending so I can try to replicate it?

@joedixon Yes, im using your branch.

{
  "event": "App\\Events\\UpdateAccountWidgetSettingEvent",
  "data": "{\"settings\":{\"enabled\":true,\"sss\":{\"sss\":\"sk-3333333\",\"connected\":true},\"tablesMaskCounter\":231,\"legalEntities\":[{\"id\":\"f9b3dbef-b79e-40fe-accf-66d4831b6120\",\"kpp\":\"673201001\",\"logo\":\"IqVoFWnju0mY4P6v.jpg\",\"ogrn\":\"1176733011685\",\"seal\":\"IqVoFWnju0mY4P6v.jpg\",\"country\":\"\\u0420\\u043e\\u0441\\u0441\\u0438\\u044f\",\"longName\":\"\\u041e\\u0431\\u0449\\u0435\\u0441\\u0442\\u0432\\u043e \\u0441 \\u043e\\u0433\\u0440\\u0430\\u043d\\u0438\\u0447\\u0435\\u043d\\u043d\\u043e\\u0439 \\u043e\\u0442\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0435\\u043d\\u043d\\u043e\\u0441\\u0442\\u044c\\u044e \\u00ab\\u042d\\u043a\\u0441\\u043f\\u043e\\u0440\\u0442\\u041a\\u043e\\u043d\\u0441\\u0430\\u043b\\u0442\\u0438\\u043d\\u0433\\u0413\\u0440\\u0443\\u043f\\u043f\\u00bb\",\"shortName\":\"\\u041e\\u041e\\u041e \\u00ab\\u042d\\u043a\\u0441\\u043f\\u043e\\u0440\\u0442\\u041a\\u043e\\u043d\\u0441\\u0430\\u043b\\u0442\\u0438\\u043d\\u0433\\u0413\\u0440\\u0443\\u043f\\u043f\\u00bb\",\"signature\":\"IqVoFWnju0mY4P6v.jpg\",\"uniqLabel\":\"\\u0418\\u041d\\u041d\",\"uniqNumber\":\"6732146922\",\"postAddress\":\"214013, \\u0421\\u043c\\u043e\\u043b\\u0435\\u043d\\u0441\\u043a\\u0430\\u044f \\u043e\\u0431\\u043b\\u0430\\u0441\\u0442\\u044c, \\u0433.\\u0421\\u043c\\u043e\\u043b\\u0435\\u043d\\u0441\\u043a, \\u0443\\u043b. \\u041c\\u0430\\u0442\\u0440\\u043e\\u0441\\u043e\\u0432\\u0430, \\u0434.9, \\u043e\\u0444\\u0438\\u0441 F1\",\"shortName-2\":\"11\",\"legalAddress\":\"214013, \\u0421\\u043c\\u043e\\u043b\\u0435\\u043d\\u0441\\u043a\\u0430\\u044f \\u043e\\u0431\\u043b\\u0430\\u0441\\u0442\\u044c, \\u0433.\\u0421\\u043c\\u043e\\u043b\\u0435\\u043d\\u0441\\u043a, \\u0443\\u043b. \\u041c\\u0430\\u0442\\u0440\\u043e\\u0441\\u043e\\u0432\\u0430, \\u0434.9, \\u043e\\u0444\\u0438\\u0441 F1\",\"signatoryBasis\":\"\\u0443\\u0441\\u0442\\u0430\\u0432\\u0430\",\"longSignatoryName\":\"\\u0426\\u044b\\u0433\\u0430\\u043d \\u0410\\u043d\\u0434\\u0440\\u0435\\u0439 \\u0421\\u0435\\u0440\\u0433\\u0435\\u0435\\u0432\\u0438\\u0447\",\"signatoryJobTitle\":\"\\u0434\\u0438\\u0440\\u0435\\u043a\\u0442\\u043e\\u0440\\u0430\",\"signatureWithSeal\":\"IqVoFWnju0mY4P6v.jpg\",\"shortSignatoryName\":\"\\u0426\\u044b\\u0433\\u0430\\u043d \\u0410. \\u0421.\"},{\"id\":\"8df4471e-c131-4d9d-bd13-1d3312985c5d\",\"logo\":\"IqVoFWnju0mY4P6v.jpg\",\"seal\":\"IqVoFWnju0mY4P6v.jpg\",\"email\":\"kirill@pushka.biz\",\"country\":\"\\u0411\\u0435\\u043b\\u0430\\u0440\\u0443\\u0441\\u044c\",\"longName\":\"\\u0418\\u043d\\u0434\\u0438\\u0432\\u0438\\u0434\\u0443\\u0430\\u043b\\u044c\\u043d\\u044b\\u0439 \\u043f\\u0440\\u0435\\u0434\\u043f\\u0440\\u0438\\u043d\\u0438\\u043c\\u0430\\u0442\\u0435\\u043b\\u044c \\u0415\\u0433\\u043e\\u0440\\u043e\\u0432 \\u041a\\u0438\\u0440\\u0438\\u043b\\u043b \\u0410\\u043b\\u0435\\u043a\\u0441\\u0435\\u0435\\u0432\\u0438\\u0447\",\"shortName\":\"\\u0418\\u041f \\u0415\\u0433\\u043e\\u0440\\u043e\\u0432 \\u041a\\u0438\\u0440\\u0438\\u043b\\u043b \\u0410\\u043b\\u0435\\u043a\\u0441\\u0435\\u0435\\u0432\\u0438\\u0447\",\"signature\":\"IqVoFWnju0mY4P6v.jpg\",\"uniqLabel\":\"\\u0423\\u041d\\u041f\",\"uniqNumber\":\"192555355\",\"postAddress\":\"\\u0413. \\u041c\\u0438\\u043d\\u0441\\u043a, \\u041f\\u0440-\\u0442 \\u041d\\u0435\\u0437\\u0430\\u0432\\u0438\\u0441\\u0438\\u043c\\u043e\\u0441\\u0442\\u0438 168-3-120\",\"shortName-2\":\"222\",\"legalAddress\":\"\\u0413. \\u041c\\u0438\\u043d\\u0441\\u043a, \\u041f\\u0440-\\u0442 \\u041d\\u0435\\u0437\\u0430\\u0432\\u0438\\u0441\\u0438\\u043c\\u043e\\u0441\\u0442\\u0438 168-3-120\",\"signatoryBasis\":\"\\u0441\\u0432\\u0438\\u0434\\u0435\\u0442\\u0435\\u043b\\u044c\\u0441\\u0442\\u0432\\u0430 \\u043e \\u0433\\u043e\\u0441\\u0443\\u0434\\u0430\\u0440\\u0441\\u0442\\u0432\\u0435\\u043d\\u043d\\u043e\\u0439 \\u0440\\u0435\\u0433\\u0438\\u0441\\u0442\\u0440\\u0430\\u0446\\u0438\\u0438 \\u0432\\u044b\\u0434\\u0430\\u043d\\u043d\\u043e\\u0433\\u043e \\u041c\\u0438\\u043d\\u0433\\u043e\\u0440\\u0438\\u0441\\u043f\\u043e\\u043b\\u043a\\u043e\\u043c\\u043e\\u043c 26.10.2015 \\u0433. \\u0440\\u0435\\u0433. \\u2116 192555355\",\"longSignatoryName\":\"\\u0415\\u0433\\u043e\\u0440\\u043e\\u0432 \\u041a\\u0438\\u0440\\u0438\\u043b\\u043b \\u0410\\u043b\\u0435\\u043a\\u0441\\u0435\\u0435\\u0432\\u0438\\u0447\",\"signatureWithSeal\":\"IqVoFWnju0mY4P6v.jpg\",\"shortSignatoryName\":\"\\u0415\\u0433\\u043e\\u0440\\u043e\\u0432 \\u041a.\\u0410.\"},{\"id\":\"d592626c-b6f1-45e3-bb21-d2de834067b5\",\"shortName\":\"Lorem ipsum dolor sit amet consectetur, adipisicing elit. Laudantium vitae ratione sequi deleniti amet quasi?\",\"uniqLabel\":\"\\u0423\\u041d\\u041f\",\"uniqNumber\":\"Lorem ipsum dolor sit amet consectetur, adipisicing elit. Laudantium vitae ratione sequi deleniti amet quasi?\"}],\"banks\":[{\"id\":\"08833dd7-f1be-4dc5-88d2-5a655a5be90a\",\"name\":\"\\u0417\\u0410\\u041e \\u0410\\u043b\\u044c\\u0444\\u0430-\\u0411\\u0430\\u043d\\u043a\",\"swift\":\"ALFABY2X\",\"name-2\":\"111\",\"address\":\"\\u0411\\u0435\\u043b\\u0430\\u0440\\u0443\\u0441\\u044c, \\u0433.\\u041c\\u0438\\u043d\\u0441\\u043a, \\u0443\\u043b.\\u0421\\u0443\\u0440\\u0433\\u0430\\u043d\\u043e\\u0432\\u0430, 43-47\"},{\"id\":\"b0083726-6b34-41f6-b81e-ae36ff8e3ec2\",\"name\":\"\\u041e\\u041e\\u041e \\u0411\\u0430\\u043d\\u043a \\u0422\\u043e\\u0447\\u043a\\u0430\",\"swift\":\"044525104\"},{\"id\":\"e0f9f6cf-63ea-42b5-a939-afa230995ff5\",\"name\":\"Lorem ipsum dolor sit amet consectetur, adipisicing elit. Laudantium vitae ratione sequi deleniti amet quasi?\",\"swift\":\"Lorem ipsum dolor sit amet consectetur, adipisicing elit. Laudantium vitae ratione sequi deleniti amet quasi?\",\"address\":\"Lorem ipsum dolor sit amet consectetur, adipisicing elit. Laudantium vitae ratione sequi deleniti amet quasi?\"}],\"multiFolders\":true,\"bankAccounts\":[{\"id\":\"f49f1136-2e63-4e73-85b1-9e923c8d35e2\",\"type\":\"IBAN\",\"bankId\":\"08833dd7-f1be-4dc5-88d2-5a655a5be90a\",\"number\":\"BY40ALFA30132117960020270000\",\"currencyId\":\"BYN\",\"legalEntityId\":\"8df4471e-c131-4d9d-bd13-1d3312985c5d\"},{\"id\":\"0cc669c5-2dce-47ab-b1a5-5b155ee00162\",\"type\":\"IBAN\",\"bankId\":\"b0083726-6b34-41f6-b81e-ae36ff8e3ec2\",\"number\":\"40702810301500019451\",\"currencyId\":\"RUB\",\"legalEntityId\":\"f9b3dbef-b79e-40fe-accf-66d4831b6120\"},{\"id\":\"5ec953e1-ac66-482e-a39f-cfbea3721a1c\",\"type\":\"IBAN\",\"bankId\":\"e0f9f6cf-63ea-42b5-a939-afa230995ff5\",\"number\":\"Lorem ipsum dolor sit amet consectetur, adipisicing elit. Laudantium vitae ratione sequi deleniti amet quasi?\",\"currencyId\":\"CAD\",\"legalEntityId\":\"d592626c-b6f1-45e3-bb21-d2de834067b5\"}],\"types\":[{\"id\":\"e561f66e-292e-470d-b363-48f44f36134e\",\"name\":\"\\u0414\\u043e\\u0433\\u043e\\u0432\\u043e\\u0440\",\"needClosingDocuments\":true},{\"id\":\"74e7c6c7-b5d6-4771-89c4-35de268e6965\",\"name\":\"\\u0410\\u043a\\u0442\",\"needClosingDocuments\":true},{\"id\":\"30350d3f-5427-411c-b0a1-ef3d10f989d9\",\"name\":\"Lorem ipsum dolor sit amet consectetur, adipisicing elit. Laudantium vitae ratione sequi deleniti amet quasi?\",\"needClosingDocuments\":true},{\"id\":\"ce3b5015-a20c-4f50-90c9-4b793cca0c15\",\"name\":\"222\",\"needClosingDocuments\":true}],\"templates\":[{\"id\":\"1UVuddkGPrKVb9CW2nCRHAtIWfgfUA4tEwkK17GCUqNs\",\"meta\":\"{{company.name}}\",\"name\":\"test (\\u041a\\u043e\\u043f\\u0438\\u044f)22\",\"typeId\":\"e561f66e-292e-470d-b363-48f44f36134e\",\"actions\":[],\"counter\":2,\"resultName\":\"\\u0414\\u043e\\u0433\\u043e\\u0432\\u043e\\u0440 \\u2116{{lead.id}}-{{template.counter}} \\u043e\\u0442 {{date.now:df()}}\",\"systemNote\":true,\"bankAccountId\":null,\"needLegalEntity\":false},{\"id\":\"1KIGQGNKSZ32lhtQkNWYG27pq6a2yvD0IfBr-jqHmuSA\",\"meta\":\"{{company.name}}\",\"name\":\"test\",\"typeId\":\"e561f66e-292e-470d-b363-48f44f36134e\",\"actions\":[],\"counter\":1,\"resultName\":\"\\u0414\\u043e\\u0433\\u043e\\u0432\\u043e\\u0440 \\u2116{{lead.id}}-{{template.counter}} \\u043e\\u0442 {{date.now:df()}}\",\"systemNote\":true,\"bankAccountId\":null,\"needLegalEntity\":false}],\"templatesExpandedByDefault\":true,\"tables\":[{\"id\":133,\"mask\":\"{{table:133}}\",\"name\":\"\\u0422\\u043e\\u0432\\u0430\\u0440\\u044b\",\"footer\":false,\"header\":true,\"catalog\":{\"id\":10755,\"type\":\"products\",\"fields\":[{\"id\":\"i\",\"mask\":\"{{element.i}}\",\"name\":\"\\u2116\",\"align\":\"START\",\"width\":30,\"footer\":\"\\u2116\",\"selected\":true},{\"id\":\"name\",\"mask\":\"{{element.name}}\",\"name\":\"\\u041d\\u0430\\u0437\\u0432\\u0430\\u043d\\u0438\\u0435\",\"align\":\"START\",\"width\":null,\"footer\":\"\\u0418\\u0442\\u043e\\u0433\\u043e\",\"selected\":true},{\"id\":\"quantity\",\"mask\":\"{{element.quantity}}\",\"name\":\"\\u041a\\u043e\\u043b-\\u0432\\u043e\",\"align\":\"START\",\"width\":null,\"footer\":\"{{table(133).itemsCount}}\",\"selected\":true},{\"id\":1882607,\"mask\":\"{{element.cf(1882607)}}\",\"name\":\"\\u0410\\u0440\\u0442\\u0438\\u043a\\u0443\\u043b\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u0410\\u0440\\u0442\\u0438\\u043a\\u0443\\u043b\",\"selected\":true},{\"id\":1882609,\"mask\":\"{{element.cf(1882609)}}\",\"name\":\"\\u041e\\u043f\\u0438\\u0441\\u0430\\u043d\\u0438\\u0435\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u041e\\u043f\\u0438\\u0441\\u0430\\u043d\\u0438\\u0435\",\"selected\":true},{\"id\":1882611,\"mask\":\"{{element.cf(1882611)}}\",\"name\":\"\\u0426\\u0435\\u043d\\u0430222\",\"with\":null,\"align\":\"START\",\"footer\":\"{{table(133).sum}}\",\"selected\":true},{\"id\":1882613,\"mask\":\"{{element.cf(1882613)}}\",\"name\":\"\\u0413\\u0440\\u0443\\u043f\\u043f\\u0430\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u0413\\u0440\\u0443\\u043f\\u043f\\u0430\",\"selected\":true},{\"id\":1882615,\"mask\":\"{{element.cf(1882615)}}\",\"name\":\"External ID\",\"with\":null,\"align\":\"START\",\"footer\":\"External ID\",\"selected\":true},{\"id\":1882617,\"mask\":\"{{element.cf(1882617)}}\",\"name\":\"\\u0415\\u0434\\u0438\\u043d\\u0438\\u0446\\u0430 \\u0438\\u0437\\u043c\\u0435\\u0440\\u0435\\u043d\\u0438\\u044f\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u0415\\u0434\\u0438\\u043d\\u0438\\u0446\\u0430 \\u0438\\u0437\\u043c\\u0435\\u0440\\u0435\\u043d\\u0438\\u044f\",\"selected\":true},{\"id\":1882623,\"mask\":\"{{element.cf(1882623)}}\",\"name\":\"\\u0411\\u0430\\u043b\\u043b\\u043e\\u0432 \\u0437\\u0430 \\u043f\\u043e\\u043a\\u0443\\u043f\\u043a\\u0443\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u0411\\u0430\\u043b\\u043b\\u043e\\u0432 \\u0437\\u0430 \\u043f\\u043e\\u043a\\u0443\\u043f\\u043a\\u0443\",\"selected\":true},{\"id\":1911795,\"mask\":\"{{element.cf(1911795)}}\",\"name\":\"\\u041a\\u0430\\u0440\\u0442\\u0438\\u043d\\u043a\\u0430\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u041a\\u0430\\u0440\\u0442\\u0438\\u043d\\u043a\\u0430\",\"selected\":true}]},\"transparent\":false},{\"id\":134,\"mask\":\"{{table:134}}\",\"name\":\"\\u0421\\u0447\\u0435\\u0442\\u0430\\/\\u043f\\u043e\\u043a\\u0443\\u043f\\u043a\\u0438\",\"footer\":false,\"header\":true,\"catalog\":{\"id\":11132,\"type\":\"invoices\",\"fields\":[{\"id\":\"i\",\"mask\":\"{{element.i}}\",\"name\":\"\\u2116\",\"align\":\"START\",\"width\":30,\"footer\":null,\"selected\":true},{\"id\":\"sku\",\"mask\":\"{{element.sku}}\",\"name\":\"\\u0410\\u0440\\u0442\\u0438\\u043a\\u0443\\u043b\",\"align\":\"START\",\"width\":null,\"footer\":null,\"selected\":true},{\"id\":\"description\",\"mask\":\"{{element.description}} fff\",\"name\":\"\\u041d\\u0430\\u0437\\u0432\\u0430\\u043d\\u0438\\u04352\",\"align\":\"START\",\"width\":null,\"footer\":null,\"selected\":false},{\"id\":\"unit_price\",\"mask\":\"{{element.unit_price}}\",\"name\":\"\\u0426\\u0435\\u043d\\u0430\",\"align\":\"START\",\"width\":null,\"footer\":\"{{table(134).sum}}\",\"selected\":true},{\"id\":\"quantity\",\"mask\":\"{{element.quantity}}\",\"name\":\"\\u041a\\u043e\\u043b-\\u0432\\u043e\",\"align\":\"START\",\"width\":null,\"footer\":\"{{table(134).itemsCount}}\",\"selected\":true},{\"id\":\"discount\",\"mask\":\"{{element.discount}}\",\"name\":\"\\u0421\\u043a\\u0438\\u0434\\u043a\\u0430\",\"align\":\"START\",\"width\":null,\"footer\":null,\"selected\":false},{\"id\":\"vat\",\"mask\":\"{{element.vat}}\",\"name\":\"\\u041d\\u0414\\u0421\",\"align\":\"START\",\"width\":null,\"footer\":null,\"selected\":false},{\"id\":\"total_price\",\"mask\":\"{{element.total_price}}\",\"name\":\"\\u0421\\u0443\\u043c\\u043c\\u0430\",\"align\":\"START\",\"width\":null,\"footer\":\"{{table(134).totalSum}}\",\"selected\":true}]},\"transparent\":false},{\"id\":203,\"mask\":\"{{table:203}}\",\"name\":\"Lorem ipsum dolor sit amet consectetur, adipisicing elit. Laudantium vitae ratione sequi deleniti amet quasi?\",\"footer\":false,\"header\":true,\"catalog\":{\"id\":12221,\"type\":\"regular\",\"fields\":[{\"id\":\"i\",\"mask\":\"{{element.i}}\",\"name\":\"\\u2116\",\"align\":\"START\",\"width\":30,\"footer\":\"\\u2116\",\"selected\":true},{\"id\":\"name\",\"mask\":\"{{element.name}}\",\"name\":\"\\u041d\\u0430\\u0437\\u0432\\u0430\\u043d\\u0438\\u0435\",\"align\":\"START\",\"width\":null,\"footer\":\"\\u0418\\u0442\\u043e\\u0433\\u043e\",\"selected\":true},{\"id\":\"quantity\",\"mask\":\"{{element.quantity}}\",\"name\":\"\\u041a\\u043e\\u043b-\\u0432\\u043e\",\"align\":\"START\",\"width\":null,\"footer\":\"{{table(203).itemsCount}}\",\"selected\":true},{\"id\":1974957,\"mask\":\"{{element.cf(1974957)}}\",\"name\":\"\\u0410\\u0440\\u0442\\u0438\\u043a\\u0443\\u043b\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u0410\\u0440\\u0442\\u0438\\u043a\\u0443\\u043b\",\"selected\":true},{\"id\":1974959,\"mask\":\"{{element.cf(1974959)}}\",\"name\":\"\\u041a\\u043e\\u043b\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043e\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u041a\\u043e\\u043b\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043e\",\"selected\":true},{\"id\":1974961,\"mask\":\"{{element.cf(1974961)}}\",\"name\":\"\\u0426\\u0435\\u043d\\u0430\",\"with\":null,\"align\":\"START\",\"footer\":\"{{table(203).sum}}\",\"selected\":true},{\"id\":1974963,\"mask\":\"{{element.cf(1974963)}}\",\"name\":\"\\u0415\\u0434\\u0438\\u043d\\u0438\\u0446\\u0430 \\u0438\\u0437\\u043c\\u0435\\u0440\\u0435\\u043d\\u0438\\u044f\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u0415\\u0434\\u0438\\u043d\\u0438\\u0446\\u0430 \\u0438\\u0437\\u043c\\u0435\\u0440\\u0435\\u043d\\u0438\\u044f\",\"selected\":true},{\"id\":1974965,\"mask\":\"{{element.cf(1974965)}}\",\"name\":\"\\u0421\\u043f\\u0435\\u0446 \\u0446\\u0435\\u043d\\u0430 1\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u0421\\u043f\\u0435\\u0446 \\u0446\\u0435\\u043d\\u0430 1\",\"selected\":true},{\"id\":1974967,\"mask\":\"{{element.cf(1974967)}}\",\"name\":\"\\u041e\\u043f\\u0442\\u043e\\u0432\\u0430\\u044f \\u0446\\u0435\\u043d\\u0430\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u041e\\u043f\\u0442\\u043e\\u0432\\u0430\\u044f \\u0446\\u0435\\u043d\\u0430\",\"selected\":true}]},\"transparent\":false},{\"id\":205,\"mask\":\"{{table:205}}\",\"name\":\"\\u0422\\u0430\\u0431\\u043b\\u0438\\u0446\\u0430 \\u0414\\u0438\\u043c\\u043e\\u043d\\u0430\",\"footer\":true,\"header\":true,\"catalog\":{\"id\":10755,\"type\":\"products\",\"fields\":[{\"id\":\"i\",\"mask\":\"{{element.i}}\",\"name\":\"\\u2116\",\"align\":\"START\",\"width\":30,\"footer\":\"\\u2116\",\"selected\":true},{\"id\":\"name\",\"mask\":\"{{element.name}}\",\"name\":\"\\u041d\\u0430\\u0437\\u0432\\u0430\\u043d\\u0438\\u0435\",\"align\":\"START\",\"width\":null,\"footer\":\"\\u0418\\u0442\\u043e\\u0433\\u043e\",\"selected\":true},{\"id\":1882609,\"mask\":\"{{element.cf(1882609)}}\",\"name\":\"\\u041e\\u043f\\u0438\\u0441\\u0430\\u043d\\u0438\\u0435\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u041e\\u043f\\u0438\\u0441\\u0430\\u043d\\u0438\\u0435\",\"selected\":true},{\"id\":\"quantity\",\"mask\":\"{{element.quantity}} \\u0448\\u0442.\",\"name\":\"\\u041a\\u043e\\u043b-\\u0432\\u043e\",\"align\":\"START\",\"width\":null,\"footer\":\"\\u0412\\u0421\\u0415\\u0413\\u041e: {{table(205).itemsCount}}\",\"selected\":true},{\"id\":1911795,\"mask\":\"{{element.cf(1911795)}}\",\"name\":\"\\u041a\\u0430\\u0440\\u0442\\u0438\\u043d\\u043a\\u0430\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u041a\\u0430\\u0440\\u0442\\u0438\\u043d\\u043a\\u0430\",\"selected\":true},{\"id\":1882611,\"mask\":\"{{element.cf(1882611)}}\",\"name\":\"\\u0426\\u0435\\u043d\\u0430222\",\"with\":null,\"align\":\"START\",\"footer\":\"{{table(205).sum}}\",\"selected\":true},{\"id\":1882607,\"mask\":\"{{element.cf(1882607)}}\",\"name\":\"\\u0410\\u0440\\u0442\\u0438\\u043a\\u0443\\u043b\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u0410\\u0440\\u0442\\u0438\\u043a\\u0443\\u043b\",\"selected\":false},{\"id\":1882613,\"mask\":\"{{element.cf(1882613)}}\",\"name\":\"\\u0413\\u0440\\u0443\\u043f\\u043f\\u0430\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u0413\\u0440\\u0443\\u043f\\u043f\\u0430\",\"selected\":false},{\"id\":1882615,\"mask\":\"{{element.cf(1882615)}}\",\"name\":\"External ID\",\"with\":null,\"align\":\"START\",\"footer\":\"External ID\",\"selected\":false},{\"id\":1882617,\"mask\":\"{{element.cf(1882617)}}\",\"name\":\"\\u0415\\u0434\\u0438\\u043d\\u0438\\u0446\\u0430 \\u0438\\u0437\\u043c\\u0435\\u0440\\u0435\\u043d\\u0438\\u044f\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u0415\\u0434\\u0438\\u043d\\u0438\\u0446\\u0430 \\u0438\\u0437\\u043c\\u0435\\u0440\\u0435\\u043d\\u0438\\u044f\",\"selected\":false},{\"id\":1882623,\"mask\":\"{{element.cf(1882623)}}\",\"name\":\"\\u0411\\u0430\\u043b\\u043b\\u043e\\u0432 \\u0437\\u0430 \\u043f\\u043e\\u043a\\u0443\\u043f\\u043a\\u0443\",\"with\":null,\"align\":\"START\",\"footer\":\"\\u0411\\u0430\\u043b\\u043b\\u043e\\u0432 \\u0437\\u0430 \\u043f\\u043e\\u043a\\u0443\\u043f\\u043a\\u0443\",\"selected\":false}]},\"transparent\":false},{\"id\":213,\"mask\":\"{{table:213}}\",\"name\":\"33\",\"footer\":false,\"header\":true,\"catalog\":{\"id\":11132,\"type\":\"invoices\",\"fields\":[{\"id\":\"i\",\"mask\":\"{{element.i}}\",\"name\":\"\\u2116\",\"align\":\"START\",\"width\":30,\"footer\":null,\"selected\":true},{\"id\":\"sku\",\"mask\":\"{{element.sku}}\",\"name\":\"\\u0410\\u0440\\u0442\\u0438\\u043a\\u0443\\u043b\",\"align\":\"START\",\"width\":null,\"footer\":null,\"selected\":true},{\"id\":\"description\",\"mask\":\"{{element.description}}\",\"name\":\"\\u041d\\u0430\\u0437\\u0432\\u0430\\u043d\\u0438\\u0435\",\"align\":\"START\",\"width\":null,\"footer\":null,\"selected\":true},{\"id\":\"unit_price\",\"mask\":\"{{element.unit_price}}\",\"name\":\"\\u0426\\u0435\\u043d\\u0430\",\"align\":\"START\",\"width\":null,\"footer\":\"{{table(213).sum}}\",\"selected\":true},{\"id\":\"quantity\",\"mask\":\"{{element.quantity}}\",\"name\":\"\\u041a\\u043e\\u043b-\\u0432\\u043e\",\"align\":\"START\",\"width\":null,\"footer\":\"{{table(213).itemsCount}}\",\"selected\":true},{\"id\":\"discount\",\"mask\":\"{{element.discount}}\",\"name\":\"\\u0421\\u043a\\u0438\\u0434\\u043a\\u0430\",\"align\":\"START\",\"width\":null,\"footer\":\"{{table(213).totalDiscount}}\",\"selected\":false},{\"id\":\"vat\",\"mask\":\"{{element.vat}}\",\"name\":\"\\u041d\\u0414\\u0421\",\"align\":\"START\",\"width\":null,\"footer\":\"{{table(213).totalVat}}\",\"selected\":false},{\"id\":\"total_price\",\"mask\":\"{{element.total_price}}\",\"name\":\"\\u0421\\u0443\\u043c\\u043c\\u0430\",\"align\":\"START\",\"width\":null,\"footer\":\"{{table(213).totalSum}}\",\"selected\":true}]},\"transparent\":false}],\"images\":[{\"id\":\"IqVoFWnju0mY4P6v.jpg\",\"url\":\"https:\\/\\/amo-documents.fra1.digitaloceanspaces.com\\/30802274\\/IqVoFWnju0mY4P6v.jpg\",\"mask\":\"{{img.IqVoFWnju0mY4P6v}}\",\"name\":\"\\u041a\\u043e\\u0442 \\u0441 \\u043c\\u0435\\u0447\\u043e\\u043c\",\"width\":100,\"height\":100},{\"id\":\"3IHFr3uOqPsD5XKJ.jpg\",\"url\":\"https:\\/\\/amo-ssss.fra1.digitaloceanspaces.com\\/30802274\\/3IHFr3uOqPsD5XKJ.jpg\",\"mask\":\"{{img.3IHFr3uOqPsD5XKJ}}\",\"name\":\"cat_sw.jpg\",\"width\":100,\"height\":100},{\"id\":\"kmCad4kq2ebSHEPf.jpg\",\"url\":\"https:\\/\\/amo-ssss.fra1.digitaloceanspaces.com\\/30802274\\/kmCad4kq2ebSHEPf.jpg\",\"mask\":\"{{img.kmCad4kq2ebSHEPf}}\",\"name\":\"Lorem ipsum dolor sit amet consectetur, adipisicing elit. Laudantium vitae ratione sequi deleniti amet quasi?\",\"width\":100,\"height\":100}],\"mainFolderId\":\"1L8J5FtLeTM6tjDPd-VulPt-zrplZWIbE\",\"templatesFolderId\":\"1nmAd2pjgZEnjSDTQUvK8_GRcIltQXogy\",\"leadsFolderId\":\"1M8oBfoqYZIQKcJ76YPTE-tMf5LoY8pAR\",\"tabName\":\"uniDoc\",\"contactsFolderId\":\"1kboryPbhTL3rN0poXIiXYkqsmDgvhAjr\",\"companiesFolderId\":\"1iKUeg_EhfWPNA0bqDByn1xkUAjjxIWlS\",\"templatesCollapsedByDefault\":false},\"googleApp\":{\"user_email\":\"k.a.egorov@gmail.com\",\"user_name\":\"Kirill Egorov\",\"user_picture\":\"sss\\/a\\/ACg8ocIQUA2JEf5Dc86SNaG9AELASFqqAUoPiRo6SCPEmEOY=s96-c\",\"scopes\":[\"https:\\/\\/wwswse\",\"https:\\/\\/www.googleapis.com\\/auth\\/userinfo.email\",\"https:\\/\\/www.googleapis.com\\/auth\\/documents\",\"https:\\/\\/www.googleapis.com\\/auth\\/drive\"]},\"subscription\":{\"until\":\"2030-12-01 00:00:00\",\"enabled\":true},\"sessionId\":\"a99e61b1-d866-4752-9e08-61ae79192760\"}",
  "channel": "account.30802274.widget.f47dc832-aa5a-4399-8c72-7008649a09cb"
}
joedixon commented 3 months ago

Thanks! The event is being broadcast from Laravel when you see the error?

mttzzz commented 3 months ago

Thanks! The event is being broadcast from Laravel when you see the error?

Yes, laravel 10

joedixon commented 3 months ago

@mttzzz I have this running on a server now with 500 connections each receiving a broadcast using the payload you provided once per second and I've not seen the error appear in my log.