Error 500 Internal Server Error

GET https://videochat.softcode.cz/room/public-1-680897f852b55

Forwarded to ErrorController (f3dd59)

Exceptions

Impossible to access an attribute ("id") on a null variable.

Exception

Twig\Error\ RuntimeError

Show exception properties
Twig\Error\RuntimeError {#976
  -lineno: 116
  -name: "room/show.html.twig"
  -rawMessage: "Impossible to access an attribute ("id") on a null variable."
  -sourcePath: "/home/softcode/web/videochat/templates/room/show.html.twig"
  -sourceCode: """
    {% extends 'base.html.twig' %}\n
    \n
    {% block title %}{{ room.name }} - {{ parent() }}{% endblock %}\n
    \n
    {% block stylesheets %}\n
        {{ parent() }}\n
    {% endblock %}\n
    \n
    {% block body %}\n
        {# Add meta tag for signaling server URL and Turbo cache control #}\n
        <meta name="signaling-server-url" content="wss://videochat.softcode.cz/ws">\n
        <meta name="in-video-room" content="true">\n
        <meta name="csrf-token" content="{{ csrf_token('turn_credentials') }}">\n
        <div data-turbo-permanent id="video-chat-room" data-turbo-cache="false" data-room-slug="{{ room.slug }}">\n
    \n
            <div id="roomOptionsTrigger" class="position-fixed top-0 end-0 mt-5 me-3">\n
                <button class="btn btn-primary rounded-circle" onclick="window.videoRoomUI.showRoomOptions(event)">\n
                    <i class="fa fa-cog"></i>\n
                </button>\n
    \n
                <div id="roomOptionsMenu" class="dropdown-menu">\n
                    <a class="dropdown-item" href="{{ path('app_room_invite', {slug: room.slug}) }}">Pozvat uživatele</a>\n
                    <a class="dropdown-item" href="{{ path('app_room_participants', {slug: room.slug}) }}">Správa účastníků</a>\n
                    <a class="dropdown-item" href="#" onclick="window.videoRoomUI.copyRoomLink(event)">Kopírovat odkaz</a>\n
                    <a class="dropdown-item" id="menu-toggle-video" href="#" onclick="window.toggleCamera(event)">Vypnout kameru</a>\n
                    <a class="dropdown-item" id="menu-toggle-mic" href="#" onclick="window.toggleMicrophone(event)">Ztlumit mikrofon</a>\n
                    <a class="dropdown-item" id="menu-share-screen" href="#" onclick="window.shareScreen(event)">Sdílet obrazovku</a>\n
                    <div class="dropdown-divider"></div>\n
                    <a class="dropdown-item text-danger" href="#" onclick="window.leaveRoom(event)">Opustit místnost</a>\n
                </div>\n
            </div>\n
            <div class="row mb-3">\n
                <div class="col-md-8">\n
                    <h1>{{ room.name }}</h1>\n
                    <p>\n
                        {% if room.isPrivate %}\n
                            <span class="badge bg-warning text-dark">Soukromá místnost</span>\n
                        {% else %}\n
                            <span class="badge bg-success">Veřejná místnost</span>\n
                        {% endif %}\n
                        <span class="badge bg-info text-dark">\n
                    <span id="participant-count">{{ room.participants|length }}</span> účastníků\n
                </span>\n
                    </p>\n
                </div>\n
                <div class="col-md-4 text-end">\n
                    <div class="dropdown">\n
                        <button class="btn btn-outline-primary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-expanded="false">\n
                            Možnosti místnosti\n
                        </button>\n
                        <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="dropdownMenuButton">\n
                            <li><a class="dropdown-item" href="{{ path('app_room_invite', {slug: room.slug}) }}">Pozvat uživatele</a></li>\n
                            <li><a class="dropdown-item" href="{{ path('app_room_participants', {slug: room.slug}) }}">Správa účastníků</a></li>\n
                            <li><a class="dropdown-item" href="#" id="copy-link">Kopírovat odkaz</a></li>\n
                            {% if room.isPrivate and app.user and room.owner == app.user %}\n
                                <li><a class="dropdown-item" href="{{ path('app_room_edit_password', {slug: room.slug}) }}">Správa hesla místnosti</a></li>\n
                            {% endif %}\n
                            <li><hr class="dropdown-divider"></li>\n
                            <li><a class="dropdown-item" href="#" id="toggle-video-menu">Vypnout kameru</a></li>\n
                            <li><a class="dropdown-item" href="#" id="toggle-audio-menu">Ztlumit mikrofon</a></li>\n
                            <li><a class="dropdown-item" href="#" id="share-screen-menu">Sdílet obrazovku</a></li>\n
                            <li><hr class="dropdown-divider"></li>\n
                            <li><a class="dropdown-item text-danger" href="#" id="leave-room">Opustit místnost</a></li>\n
                        </ul>\n
                    </div>\n
                </div>\n
            </div>\n
    \n
            <div class="row">\n
                <div class="col-md-9">\n
                    <div class="card mb-4">\n
                        <div class="card-body p-0">\n
                            <div id="video-container" class="position-relative">\n
                                <div id="local-video-container" class="position-absolute bottom-0 end-0 p-2 z-index-1">\n
                                    <video id="local-video" autoplay muted playsinline class="w-100 h-100 rounded bg-dark"></video>\n
                                    <div class="position-absolute bottom-0 start-0 bg-dark bg-opacity-50 text-white px-2 py-1 rounded" style="font-size: 0.8rem;">\n
                                        Vy ({{ app.user ? app.user.username : 'Host' }})\n
                                    </div>\n
                                    <button id="camera-retry" onclick="window.initializeCamera()" class="btn btn-sm btn-danger position-absolute top-0 end-0 m-1" title="Kamera se neinicializovala. Kliknutím zkuste znovu." style="display: none;">\n
                                        <i class="fa fa-video-slash"></i> Povolit kameru\n
                                    </button>\n
                                </div>\n
                                <div id="remote-videos" class="d-flex flex-wrap justify-content-center align-items-center" style="min-height: 400px;">\n
                                    <div class="text-center text-light py-5">\n
                                        <div class="spinner-border" role="status">\n
                                            <span class="visually-hidden">Načítání...</span>\n
                                        </div>\n
                                        <p class="mt-2">Připojování k místnosti...</p>\n
                                    </div>\n
                                </div>\n
                            </div>\n
                        </div>\n
                        <div class="card-footer bg-dark text-center">\n
                            <div class="btn-group">\n
                                <button id="mic-toggle" class="btn btn-outline-light" onclick="window.toggleMicrophone()">\n
                                    <i class="fa fa-microphone"></i>\n
                                </button>\n
                                <button id="camera-toggle" class="btn btn-outline-light" onclick="window.toggleCamera()">\n
                                    <i class="fa fa-video"></i>\n
                                </button>\n
                                <button id="screen-share" class="btn btn-outline-light" onclick="window.shareScreen()">\n
                                    <i class="fa fa-desktop"></i>\n
                                </button>\n
                            </div>\n
                        </div>\n
                    </div>\n
                </div>\n
    \n
                <div class="col-md-3">\n
                    <div class="card mb-4">\n
                        <div class="card-header">\n
                            <h5 class="mb-0">Účastníci</h5>\n
                        </div>\n
                        <div class="card-body p-0">\n
                            <ul class="list-group list-group-flush" id="participants-list">\n
                                <li class="list-group-item d-flex justify-content-between align-items-center" data-user-id="{{ app.user.id }}">\n
                                    {{ app.user.username }} {% if app.user.id == room.owner.id %}(Vy){% else %}(Vy){% endif %}\n
                                    {% if app.user.id == room.owner.id %}\n
                                        <span class="badge bg-primary rounded-pill">Hostitel</span>\n
                                    {% endif %}\n
                                </li>\n
                                {% for participant in room.participants %}\n
                                    {% if participant.id != app.user.id %}\n
                                        <li class="list-group-item" data-user-id="{{ participant.id }}">\n
                                            {{ participant.username }}\n
                                            {% if participant.id == room.owner.id %}\n
                                                <span class="badge bg-primary rounded-pill">Hostitel</span>\n
                                            {% endif %}\n
                                        </li>\n
                                    {% endif %}\n
                                {% endfor %}\n
                            </ul>\n
                        </div>\n
                    </div>\n
                </div>\n
            </div>\n
        </div>\n
    \n
    {% endblock %}\n
    \n
    {% block javascripts %}\n
        {{ parent() }}\n
    \n
        {# Definujeme proměnné pro JS #}\n
        <script>\n
            // Namespace pro data o místnosti\n
            window.videoChatApp = {\n
                roomId: {{ room.id }},\n
                roomSlug: "{{ room.slug }}",\n
                currentUserId: {{ app.user ? app.user.id : 'null' }},\n
                currentUsername: "{{ app.user ? app.user.username : 'Host' }}",\n
                isOwner: {{ app.user and app.user.id == room.owner.id ? 'true' : 'false' }},\n
                csrfToken: "{{ csrf_token('turn_credentials') }}"\n
            };\n
        </script>\n
    \n
        {# Přímé importy JS souborů přes importmap #}\n
        {{ importmap('debug') }}\n
        {{ importmap('videochat-init') }}\n
    \n
        <script>\n
            document.addEventListener('DOMContentLoaded', function() {\n
                console.log('DOMContentLoaded v hlavní šabloně, inicializuji pomocníky');\n
    \n
                // Inicializace dropdownů\n
                var dropdownElementList = [].slice.call(document.querySelectorAll('.dropdown-toggle'))\n
                dropdownElementList.map(function(dropdownToggleEl) {\n
                    try {\n
                        return new bootstrap.Dropdown(dropdownToggleEl)\n
                    } catch (e) {\n
                        console.error('Chyba při inicializaci dropdownu:', e);\n
                    }\n
                });\n
    \n
                // Přidáme event listenery na tlačítka\n
                document.getElementById('copy-link')?.addEventListener('click', function(e) {\n
                    e.preventDefault();\n
                    if (window.videoRoomUI && window.videoRoomUI.copyRoomLink) {\n
                        window.videoRoomUI.copyRoomLink(e);\n
                    } else {\n
                        const roomSlug = document.getElementById('video-chat-room').dataset.roomSlug;\n
                        const roomUrl = window.location.origin + '/room/' + roomSlug;\n
                        navigator.clipboard.writeText(roomUrl).then(function() {\n
                            alert('Odkaz na místnost byl zkopírován do schránky!');\n
                        });\n
                    }\n
                });\n
    \n
                document.getElementById('toggle-video-menu')?.addEventListener('click', function(e) {\n
                    e.preventDefault();\n
                    if (window.toggleCamera) {\n
                        window.toggleCamera(e);\n
                    }\n
                });\n
    \n
                document.getElementById('toggle-audio-menu')?.addEventListener('click', function(e) {\n
                    e.preventDefault();\n
                    if (window.toggleMicrophone) {\n
                        window.toggleMicrophone(e);\n
                    }\n
                });\n
    \n
                document.getElementById('share-screen-menu')?.addEventListener('click', function(e) {\n
                    e.preventDefault();\n
                    if (window.shareScreen) {\n
                        window.shareScreen(e);\n
                    }\n
                });\n
    \n
                document.getElementById('leave-room')?.addEventListener('click', function(e) {\n
                    e.preventDefault();\n
                    if (window.leaveRoom) {\n
                        window.leaveRoom(e);\n
                    } else {\n
                        if (confirm('Opravdu chcete opustit tuto místnost?')) {\n
                            window.location.href = '/';\n
                        }\n
                    }\n
                });\n
            });\n
        </script>\n
    {% endblock %}
    """
}
  1.                     <div class="card-header">
  2.                         <h5 class="mb-0">Účastníci</h5>
  3.                     </div>
  4.                     <div class="card-body p-0">
  5.                         <ul class="list-group list-group-flush" id="participants-list">
  6.                             <li class="list-group-item d-flex justify-content-between align-items-center" data-user-id="{{ app.user.id }}">
  7.                                 {{ app.user.username }} {% if app.user.id == room.owner.id %}(Vy){% else %}(Vy){% endif %}
  8.                                 {% if app.user.id == room.owner.id %}
  9.                                     <span class="badge bg-primary rounded-pill">Hostitel</span>
  10.                                 {% endif %}
  11.                             </li>
  1.                     </div>
  2.                     <div class=\"card-body p-0\">
  3.                         <ul class=\"list-group list-group-flush\" id=\"participants-list\">
  4.                             <li class=\"list-group-item d-flex justify-content-between align-items-center\" data-user-id=\"";
  5.         // line 116
  6.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'116$this->source); })()), "user", [], "any"falsefalsefalse116), "id", [], "any"falsefalsefalse116), "html"nulltrue);
  7.         yield "\">
  8.                                 ";
  9.         // line 117
  10.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'117$this->source); })()), "user", [], "any"falsefalsefalse117), "username", [], "any"falsefalsefalse117), "html"nulltrue);
  11.         yield " ";
in vendor/twig/twig/src/Template.php -> block_body (line 432)
  1.             throw new \LogicException('A block must be a method on a \Twig\Template instance.');
  2.         }
  3.         if (null !== $template) {
  4.             try {
  5.                 yield from $template->$block($context$blocks);
  6.             } catch (Error $e) {
  7.                 if (!$e->getSourceContext()) {
  8.                     $e->setSourceContext($template->getSourceContext());
  9.                 }
  1.         $context array_intersect_key($context$_parent) + $_parent;
  2.         // line 77
  3.         yield "            
  4.             ";
  5.         // line 78
  6.         yield from $this->unwrap()->yieldBlock('body'$context$blocks);
  7.         // line 79
  8.         yield "        </div>
  9.         
  10.         <footer class=\"mt-5 py-3 bg-light text-center\">
  11.             <div class=\"container\">
in vendor/twig/twig/src/Template.php -> doDisplay (line 388)
  1.     {
  2.         $context += $this->env->getGlobals();
  3.         $blocks array_merge($this->blocks$blocks);
  4.         try {
  5.             yield from $this->doDisplay($context$blocks);
  6.         } catch (Error $e) {
  7.             if (!$e->getSourceContext()) {
  8.                 $e->setSourceContext($this->getSourceContext());
  9.             }
  1.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  2.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""room/show.html.twig"));
  3.         $this->parent $this->loadTemplate("base.html.twig""room/show.html.twig"1);
  4.         yield from $this->parent->unwrap()->yield($contextarray_merge($this->blocks$blocks));
  5.         
  6.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  7.         
  8.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
in vendor/twig/twig/src/Template.php -> doDisplay (line 388)
  1.     {
  2.         $context += $this->env->getGlobals();
  3.         $blocks array_merge($this->blocks$blocks);
  4.         try {
  5.             yield from $this->doDisplay($context$blocks);
  6.         } catch (Error $e) {
  7.             if (!$e->getSourceContext()) {
  8.                 $e->setSourceContext($this->getSourceContext());
  9.             }
  1.         return $this->blocks;
  2.     }
  3.     public function display(array $context, array $blocks = []): void
  4.     {
  5.         foreach ($this->yield($context$blocks) as $data) {
  6.             echo $data;
  7.         }
  8.     }
  9.     public function render(array $context): string
in vendor/twig/twig/src/Template.php -> display (line 359)
  1.                 ob_start();
  2.             } else {
  3.                 ob_start(function () { return ''; });
  4.             }
  5.             try {
  6.                 $this->display($context);
  7.             } catch (\Throwable $e) {
  8.                 while (ob_get_level() > $level) {
  9.                     ob_end_clean();
  10.                 }
  1.         yield from $this->template->yieldBlock($name$context);
  2.     }
  3.     public function render(array $context = []): string
  4.     {
  5.         return $this->template->render($context);
  6.     }
  7.     /**
  8.      * @return void
  9.      */
  1.      * @throws SyntaxError  When an error occurred during compilation
  2.      * @throws RuntimeError When an error occurred during rendering
  3.      */
  4.     public function render($name, array $context = []): string
  5.     {
  6.         return $this->load($name)->render($context);
  7.     }
  8.     /**
  9.      * Displays a template.
  10.      *
  1.         if (null !== $block) {
  2.             return $this->container->get('twig')->load($view)->renderBlock($block$parameters);
  3.         }
  4.         return $this->container->get('twig')->render($view$parameters);
  5.     }
  6.     private function doRender(string $view, ?string $block, array $parameters, ?Response $responsestring $method): Response
  7.     {
  8.         $content $this->doRenderView($view$block$parameters$method);
  1.         return $this->container->get('twig')->render($view$parameters);
  2.     }
  3.     private function doRender(string $view, ?string $block, array $parameters, ?Response $responsestring $method): Response
  4.     {
  5.         $content $this->doRenderView($view$block$parameters$method);
  6.         $response ??= new Response();
  7.         if (200 === $response->getStatusCode()) {
  8.             foreach ($parameters as $v) {
  9.                 if ($v instanceof FormInterface && $v->isSubmitted() && !$v->isValid()) {
  1.      * If an invalid form is found in the list of parameters, a 422 status code is returned.
  2.      * Forms found in parameters are auto-cast to form views.
  3.      */
  4.     protected function render(string $view, array $parameters = [], ?Response $response null): Response
  5.     {
  6.         return $this->doRender($viewnull$parameters$response__FUNCTION__);
  7.     }
  8.     /**
  9.      * Renders a block in a view.
  10.      *
AbstractController->render() in src/Controller/RoomController.php (line 251)
  1.         }
  2.         
  3.         // Otherwise show options page
  4.         //return $this->redirectToRoute('app_room_direct_access', ['slug' => $slug]);
  5.         return $this->render('room/show.html.twig', [
  6.             'room' => $room,
  7.             'signaling_server_url' => $this->signalingServerUrl,
  8.             'metered_api_key' => $this->params->get('app.metered_api_key'// Předáváme API klíč do šablony
  9.         ]);
  10.     }
  1.         $this->dispatcher->dispatch($eventKernelEvents::CONTROLLER_ARGUMENTS);
  2.         $controller $event->getController();
  3.         $arguments $event->getArguments();
  4.         // call controller
  5.         $response $controller(...$arguments);
  6.         // view
  7.         if (!$response instanceof Response) {
  8.             $event = new ViewEvent($this$request$type$response$event);
  9.             $this->dispatcher->dispatch($eventKernelEvents::VIEW);
  1.         $request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
  2.         $this->requestStack->push($request);
  3.         $response null;
  4.         try {
  5.             return $response $this->handleRaw($request$type);
  6.         } catch (\Throwable $e) {
  7.             if ($e instanceof \Error && !$this->handleAllThrowables) {
  8.                 throw $e;
  9.             }
  1.         $this->boot();
  2.         ++$this->requestStackSize;
  3.         $this->resetServices true;
  4.         try {
  5.             return $this->getHttpKernel()->handle($request$type$catch);
  6.         } finally {
  7.             --$this->requestStackSize;
  8.         }
  9.     }
  1.     ) {
  2.     }
  3.     public function run(): int
  4.     {
  5.         $response $this->kernel->handle($this->request);
  6.         if (Kernel::VERSION_ID >= 60400) {
  7.             $response->send(false);
  8.             if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in vendor/autoload_runtime.php -> run (line 29)
  1. $app $app(...$args);
  2. exit(
  3.     $runtime
  4.         ->getRunner($app)
  5.         ->run()
  6. );
require_once('/home/softcode/web/videochat/vendor/autoload_runtime.php') in public/index.php (line 5)
  1. <?php
  2. use App\Kernel;
  3. require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
  4. return function (array $context) {
  5.     return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
  6. };

Logs

Level Channel Message
INFO 15:20:39 request Matched route "_profiler".
{
    "route": "_profiler",
    "route_parameters": {
        "_route": "_profiler",
        "_controller": "web_profiler.controller.profiler::panelAction",
        "token": "2c55d4"
    },
    "request_uri": "https://videochat.softcode.cz/_profiler/2c55d4?panel=exception&type=request",
    "method": "GET"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke".
{
    "event": "kernel.request",
    "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bridge\\Doctrine\\Middleware\\IdleConnection\\Listener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
DEBUG 15:20:39 event Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsCsrfTokenValidAttributeListener::onKernelControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener::onKernelControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "ContainerFrrc1QZ\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "ContainerFrrc1QZ\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::onControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke".
{
    "event": "kernel.request",
    "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bridge\\Doctrine\\Middleware\\IdleConnection\\Listener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
DEBUG 15:20:39 event Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsCsrfTokenValidAttributeListener::onKernelControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener::onKernelControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "ContainerFrrc1QZ\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "ContainerFrrc1QZ\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::onControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelResponse"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Component\Security\Csrf\SameOriginCsrfTokenManager::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\Security\\Csrf\\SameOriginCsrfTokenManager::onKernelResponse"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Component\Security\Http\Firewall\ContextListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\Security\\Http\\Firewall\\ContextListener::onKernelResponse"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Component\Security\Http\Firewall\ContextListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\Security\\Http\\Firewall\\ContextListener::onKernelResponse"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener::onKernelResponse"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Component\WebLink\EventListener\AddLinkHeaderListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\WebLink\\EventListener\\AddLinkHeaderListener::onKernelResponse"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelResponse"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Component\Mercure\EventSubscriber\SetCookieSubscriber::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\Mercure\\EventSubscriber\\SetCookieSubscriber::onKernelResponse"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelResponse"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener::onKernelResponse"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::removeCspHeader".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::removeCspHeader"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Bundle\\WebProfilerBundle\\EventListener\\WebDebugToolbarListener::onKernelResponse"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener::onResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DisallowRobotsIndexingListener::onResponse"
}
DEBUG 15:20:39 event Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelResponse".
{
    "event": "kernel.response",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelResponse"
}
DEBUG 15:20:39 event Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelFinishRequest".
{
    "event": "kernel.finish_request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelFinishRequest"
}
DEBUG 15:20:39 event Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelFinishRequest".
{
    "event": "kernel.finish_request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelFinishRequest"
}
DEBUG 15:20:39 event Notified event "kernel.finish_request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelFinishRequest".
{
    "event": "kernel.finish_request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelFinishRequest"
}
DEBUG 15:20:39 event Notified event "kernel.finish_request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelFinishRequest".
{
    "event": "kernel.finish_request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelFinishRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke".
{
    "event": "kernel.request",
    "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bridge\\Doctrine\\Middleware\\IdleConnection\\Listener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
DEBUG 15:20:39 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
DEBUG 15:20:39 event Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
DEBUG 15:20:39 event Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsCsrfTokenValidAttributeListener::onKernelControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener::onKernelControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "ContainerFrrc1QZ\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "ContainerFrrc1QZ\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
DEBUG 15:20:39 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::onControllerArguments"
}

Stack Trace

RuntimeError
Twig\Error\RuntimeError:
Impossible to access an attribute ("id") on a null variable.

  at templates/room/show.html.twig:116
  at Twig\Extension\CoreExtension::getAttribute()
     (var/cache/dev/twig/43/432165ffa27351bd415eb3d9dfe1b214.php:281)
  at __TwigTemplate_6773f22120ef9ee5c304ca469633268e->block_body()
     (vendor/twig/twig/src/Template.php:432)
  at Twig\Template->yieldBlock()
     (var/cache/dev/twig/37/379b41cf0bccc3a4f1a63d55177fd3d0.php:184)
  at __TwigTemplate_9c17ed8ec9e4438f28caf4c4c00c8ad0->doDisplay()
     (vendor/twig/twig/src/Template.php:388)
  at Twig\Template->yield()
     (var/cache/dev/twig/43/432165ffa27351bd415eb3d9dfe1b214.php:56)
  at __TwigTemplate_6773f22120ef9ee5c304ca469633268e->doDisplay()
     (vendor/twig/twig/src/Template.php:388)
  at Twig\Template->yield()
     (vendor/twig/twig/src/Template.php:344)
  at Twig\Template->display()
     (vendor/twig/twig/src/Template.php:359)
  at Twig\Template->render()
     (vendor/twig/twig/src/TemplateWrapper.php:51)
  at Twig\TemplateWrapper->render()
     (vendor/twig/twig/src/Environment.php:334)
  at Twig\Environment->render()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:431)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:436)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:250)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render()
     (src/Controller/RoomController.php:251)
  at App\Controller\RoomController->show()
     (vendor/symfony/http-kernel/HttpKernel.php:183)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
     (vendor/symfony/http-kernel/HttpKernel.php:76)
  at Symfony\Component\HttpKernel\HttpKernel->handle()
     (vendor/symfony/http-kernel/Kernel.php:182)
  at Symfony\Component\HttpKernel\Kernel->handle()
     (vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (vendor/autoload_runtime.php:29)
  at require_once('/home/softcode/web/videochat/vendor/autoload_runtime.php')
     (public/index.php:5)