Films réalisés par Emma De Swaef

Loading…
Loading the web debug toolbar…
Attempt #
An exception has been thrown during the rendering of a template ("Failed to start the session because headers have already been sent by "/home/emiliek/pulse/vendor/symfony/http-foundation/Response.php" at line 380."). (500 Internal Server Error)

Symfony Exception

ValueError RuntimeException RuntimeError

HTTP 500 Internal Server Error

An exception has been thrown during the rendering of a template ("Failed to start the session because headers have already been sent by "/home/emiliek/pulse/vendor/symfony/http-foundation/Response.php" at line 380.").

Exceptions 3

Twig\Error\ RuntimeError

Show exception properties
Twig\Error\RuntimeError {#3211
  -lineno: 9
  -name: "base.html.twig"
  -rawMessage: "An exception has been thrown during the rendering of a template ("Failed to start the session because headers have already been sent by "/home/emiliek/pulse/vendor/symfony/http-foundation/Response.php" at line 380.")."
  -sourcePath: "/home/emiliek/pulse/templates/base.html.twig"
  -sourceCode: """
    <!DOCTYPE html>\r\n
    <html lang="fr" data-bs-theme="dark">\r\n
    <head>\r\n
        <meta charset="UTF-8">\r\n
        <meta name="viewport" content="width=device-width, initial-scale=1.0">\r\n
        <meta name="robots" content="no-index, nofollow">\r\n
    \r\n
        <!-- CSRF Tokens -->\r\n
        <meta name="csrf-token" content="{{ csrf_token('authenticate') }}">\r\n
        <meta name="csrf-token-mark-read" content="{{ csrf_token('mark_read') }}">\r\n
        <meta name="csrf-token-mark-all-read" content="{{ csrf_token('mark_all_read') }}">\r\n
    \r\n
        <title>{% block title %}Pulse{% endblock %}</title>\r\n
    \r\n
        {% block stylesheets %}\r\n
            {{ encore_entry_link_tags('app') }}\r\n
            <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">\r\n
            <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">\r\n
            <link rel="stylesheet" href="{{ asset('build/styles.css') }}">\r\n
            <link rel="icon" href="{{ asset('build/img/favicon.ico') }}" type="image/x-icon">\r\n
    \r\n
            <style>\r\n
                .content {\r\n
                    min-height: 100vh;\r\n
                    display: flex;\r\n
                    flex-direction: column;\r\n
                    justify-content: center;\r\n
                    align-items: center;\r\n
                }\r\n
    \r\n
                .mini-player {\r\n
                    position: fixed;\r\n
                    bottom: 0;\r\n
                    left: 0;\r\n
                    right: 0;\r\n
                    height: 80px;\r\n
                    background-color: var(--bs-dark);\r\n
                    display: none;\r\n
                    align-items: center;\r\n
                    padding: 0 10px;\r\n
                    border-top: 1px solid var(--bs-border-color);\r\n
                    z-index: 1050;\r\n
                }\r\n
    \r\n
                .mini-player img {\r\n
                    height: 60px;\r\n
                    width: 60px;\r\n
                    object-fit: cover;\r\n
                    margin-right: 10px;\r\n
                    border-radius: 5px;\r\n
                }\r\n
    \r\n
                .mini-player button {\r\n
                    margin-left: auto;\r\n
                }\r\n
            </style>\r\n
        {% endblock %}\r\n
    </head>\r\n
        <body>\r\n
            {{ render(controller('App\\Controller\\NavbarController::navbar')) }}\r\n
    \r\n
            <div class="wrapper">\r\n
                <div class="content">\r\n
                    {% block body %}{% endblock %}\r\n
                </div>\r\n
            </div>\r\n
    \r\n
            {% block javascripts %}\r\n
                {{ encore_entry_script_tags('app') }}\r\n
                <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>\r\n
                <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/js/all.min.js"></script>\r\n
            {% endblock %}\r\n
        \r\n
            <script>\r\n
                let playerPopup = null;\r\n
    \r\n
                document.addEventListener('DOMContentLoaded', () => {\r\n
                    const btn = document.getElementById('open-player-popup');\r\n
                    if (!btn) return;\r\n
    \r\n
                    btn.addEventListener('click', (e) => {\r\n
                        e.preventDefault();\r\n
    \r\n
                        // Déjà ouvert → focus\r\n
                        if (playerPopup && !playerPopup.closed) {\r\n
                            playerPopup.focus();\r\n
                            return;\r\n
                        }\r\n
    \r\n
                        // Ouvrir le popup\r\n
                        playerPopup = window.open(\r\n
                            '/player/popup',\r\n
                            'globalPlayerPopup',\r\n
                            'width=420,height=650,resizable=yes,scrollbars=no'\r\n
                        );\r\n
    \r\n
                        if (!playerPopup) {\r\n
                            alert('Veuillez autoriser les popups pour le lecteur audio');\r\n
                        }\r\n
                    });\r\n
                });\r\n
            </script>\r\n
            <!-- Footer -->\r\n
            <footer class="footer">\r\n
                {% block footer %}\r\n
                    {% include '/main/footer.html.twig' %}\r\n
                {% endblock %}\r\n
            </footer>\r\n
        </body>\r\n
    </html>
    """
}
  1.     <meta charset="UTF-8">
  2.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  3.     <meta name="robots" content="no-index, nofollow">
  4.     <!-- CSRF Tokens -->
  5.     <meta name="csrf-token" content="{{ csrf_token('authenticate') }}">
  6.     <meta name="csrf-token-mark-read" content="{{ csrf_token('mark_read') }}">
  7.     <meta name="csrf-token-mark-all-read" content="{{ csrf_token('mark_all_read') }}">
  8.     <title>{% block title %}Pulse{% endblock %}</title>
  1.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  2.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""error/403.html.twig"));
  3.         $this->parent $this->loadTemplate("base.html.twig""error/403.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);
  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
  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.     ) {
  2.     }
  3.     public function render(array $context = []): string
  4.     {
  5.         return $this->template->render($context);
  6.     }
  7.     public function display(array $context = [])
  8.     {
  9.         // using func_get_args() allows to not expose the blocks argument
  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('error/403.html.twig') in /home/emiliek/pulse/src/Controller/ErrorController.php (line 14)
  1. class ErrorController extends AbstractController
  2. {
  3.     #[Route('/error/403'name'error_403')]
  4.     public function accessDenied(): Response
  5.     {
  6.         return $this->render('error/403.html.twig');
  7.     }
  8. }
  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.         }
  2.         $request $this->duplicateRequest($throwable$event->getRequest());
  3.         try {
  4.             $response $event->getKernel()->handle($requestHttpKernelInterface::SUB_REQUESTfalse);
  5.         } catch (\Exception $e) {
  6.             $f FlattenException::createFromThrowable($e);
  7.             $this->logException($esprintf('Exception thrown when handling an exception (%s: %s at %s line %s)'$f->getClass(), $f->getMessage(), basename($e->getFile()), $e->getLine()));
  1.         $this->priority ??= $dispatcher->getListenerPriority($eventName$this->listener);
  2.         $e $this->stopwatch->start($this->name'event_listener');
  3.         try {
  4.             ($this->optimizedListener ?? $this->listener)($event$eventName$dispatcher);
  5.         } finally {
  6.             if ($e->isStarted()) {
  7.                 $e->stop();
  8.             }
  9.         }
  1.         foreach ($listeners as $listener) {
  2.             if ($stoppable && $event->isPropagationStopped()) {
  3.                 break;
  4.             }
  5.             $listener($event$eventName$this);
  6.         }
  7.     }
  8.     /**
  9.      * Sorts the internal list of listeners for the given event by priority.
  1.         } else {
  2.             $listeners $this->getListeners($eventName);
  3.         }
  4.         if ($listeners) {
  5.             $this->callListeners($listeners$eventName$event);
  6.         }
  7.         return $event;
  8.     }
  1.         try {
  2.             $this->beforeDispatch($eventName$event);
  3.             try {
  4.                 $e $this->stopwatch->start($eventName'section');
  5.                 try {
  6.                     $this->dispatcher->dispatch($event$eventName);
  7.                 } finally {
  8.                     if ($e->isStarted()) {
  9.                         $e->stop();
  10.                     }
  11.                 }
  1.      * Handles a throwable by trying to convert it to a Response.
  2.      */
  3.     private function handleThrowable(\Throwable $eRequest $requestint $type): Response
  4.     {
  5.         $event = new ExceptionEvent($this$request$type$eisKernelTerminating$this->terminating);
  6.         $this->dispatcher->dispatch($eventKernelEvents::EXCEPTION);
  7.         // a listener might have replaced the exception
  8.         $e $event->getThrowable();
  9.         if (!$event->hasResponse()) {
  1.         if ($pop $request !== $this->requestStack->getMainRequest()) {
  2.             $this->requestStack->push($request);
  3.         }
  4.         try {
  5.             $response $this->handleThrowable($exception$requestself::MAIN_REQUEST);
  6.         } finally {
  7.             if ($pop) {
  8.                 $this->requestStack->pop();
  9.             }
  10.         }
  1.                         if ($hasRun) {
  2.                             throw $e;
  3.                         }
  4.                         $hasRun true;
  5.                         $kernel->terminateWithException($e$request);
  6.                     };
  7.                 }
  8.             } elseif ($event instanceof ConsoleEvent && $app $event->getCommand()->getApplication()) {
  9.                 $output $event->getOutput();
  10.                 if ($output instanceof ConsoleOutputInterface) {
in /home/emiliek/pulse/vendor/symfony/error-handler/ErrorHandler.php :: Symfony\Component\HttpKernel\EventListener\{closure} (line 538)
  1.             $this->exceptionHandler null;
  2.         }
  3.         try {
  4.             if (null !== $exceptionHandler) {
  5.                 $exceptionHandler($exception);
  6.                 return;
  7.             }
  8.             $handlerException ??= $exception;
  9.         } catch (\Throwable $handlerException) {
ErrorHandler->handleException(object(ValueError))

RuntimeException

Failed to start the session because headers have already been sent by "/home/emiliek/pulse/vendor/symfony/http-foundation/Response.php" at line 380.

  1.         if (\PHP_SESSION_ACTIVE === session_status()) {
  2.             throw new \RuntimeException('Failed to start the session: already started by PHP.');
  3.         }
  4.         if (filter_var(\ini_get('session.use_cookies'), \FILTER_VALIDATE_BOOL) && headers_sent($file$line)) {
  5.             throw new \RuntimeException(sprintf('Failed to start the session because headers have already been sent by "%s" at line %d.'$file$line));
  6.         }
  7.         $sessionId $_COOKIE[session_name()] ?? null;
  8.         /*
  9.          * Explanation of the session ID regular expression: `/^[a-zA-Z0-9,-]{22,250}$/`.
  1.         $this->registerBag($flashes);
  2.     }
  3.     public function start(): bool
  4.     {
  5.         return $this->storage->start();
  6.     }
  7.     public function has(string $name): bool
  8.     {
  9.         return $this->getAttributeBag()->has($name);
  1.     public function hasToken(string $tokenId): bool
  2.     {
  3.         $session $this->getSession();
  4.         if (!$session->isStarted()) {
  5.             $session->start();
  6.         }
  7.         return $session->has($this->namespace.'/'.$tokenId);
  8.     }
  1.     }
  2.     public function getToken(string $tokenId): CsrfToken
  3.     {
  4.         $namespacedId $this->getNamespace().$tokenId;
  5.         if ($this->storage->hasToken($namespacedId)) {
  6.             $value $this->storage->getToken($namespacedId);
  7.         } else {
  8.             $value $this->generator->generateToken();
  9.             $this->storage->setToken($namespacedId$value);
  1.     {
  2.         if (null === $this->csrfTokenManager) {
  3.             throw new BadMethodCallException('CSRF tokens can only be generated if a CsrfTokenManagerInterface is injected in FormRenderer::__construct(). Try running "composer require symfony/security-csrf".');
  4.         }
  5.         return $this->csrfTokenManager->getToken($tokenId)->getValue();
  6.     }
  7.     public function renderBlock(FormView $viewstring $blockName, array $variables = []): string
  8.     {
  9.         $resource $this->engine->getResourceForBlockName($view$blockName);
  1.     <meta name=\"robots\" content=\"no-index, nofollow\">
  2.     <!-- CSRF Tokens -->
  3.     <meta name=\"csrf-token\" content=\"";
  4.         // line 9
  5.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Symfony\Component\Form\FormRenderer')->renderCsrfToken("authenticate"), "html"nulltrue);
  6.         yield "\">
  7.     <meta name=\"csrf-token-mark-read\" content=\"";
  8.         // line 10
  9.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Symfony\Component\Form\FormRenderer')->renderCsrfToken("mark_read"), "html"nulltrue);
  10.         yield "\">
  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""error/403.html.twig"));
  3.         $this->parent $this->loadTemplate("base.html.twig""error/403.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);
  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
  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.     ) {
  2.     }
  3.     public function render(array $context = []): string
  4.     {
  5.         return $this->template->render($context);
  6.     }
  7.     public function display(array $context = [])
  8.     {
  9.         // using func_get_args() allows to not expose the blocks argument
  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('error/403.html.twig') in /home/emiliek/pulse/src/Controller/ErrorController.php (line 14)
  1. class ErrorController extends AbstractController
  2. {
  3.     #[Route('/error/403'name'error_403')]
  4.     public function accessDenied(): Response
  5.     {
  6.         return $this->render('error/403.html.twig');
  7.     }
  8. }
  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.         }
  2.         $request $this->duplicateRequest($throwable$event->getRequest());
  3.         try {
  4.             $response $event->getKernel()->handle($requestHttpKernelInterface::SUB_REQUESTfalse);
  5.         } catch (\Exception $e) {
  6.             $f FlattenException::createFromThrowable($e);
  7.             $this->logException($esprintf('Exception thrown when handling an exception (%s: %s at %s line %s)'$f->getClass(), $f->getMessage(), basename($e->getFile()), $e->getLine()));
  1.         $this->priority ??= $dispatcher->getListenerPriority($eventName$this->listener);
  2.         $e $this->stopwatch->start($this->name'event_listener');
  3.         try {
  4.             ($this->optimizedListener ?? $this->listener)($event$eventName$dispatcher);
  5.         } finally {
  6.             if ($e->isStarted()) {
  7.                 $e->stop();
  8.             }
  9.         }
  1.         foreach ($listeners as $listener) {
  2.             if ($stoppable && $event->isPropagationStopped()) {
  3.                 break;
  4.             }
  5.             $listener($event$eventName$this);
  6.         }
  7.     }
  8.     /**
  9.      * Sorts the internal list of listeners for the given event by priority.
  1.         } else {
  2.             $listeners $this->getListeners($eventName);
  3.         }
  4.         if ($listeners) {
  5.             $this->callListeners($listeners$eventName$event);
  6.         }
  7.         return $event;
  8.     }
  1.         try {
  2.             $this->beforeDispatch($eventName$event);
  3.             try {
  4.                 $e $this->stopwatch->start($eventName'section');
  5.                 try {
  6.                     $this->dispatcher->dispatch($event$eventName);
  7.                 } finally {
  8.                     if ($e->isStarted()) {
  9.                         $e->stop();
  10.                     }
  11.                 }
  1.      * Handles a throwable by trying to convert it to a Response.
  2.      */
  3.     private function handleThrowable(\Throwable $eRequest $requestint $type): Response
  4.     {
  5.         $event = new ExceptionEvent($this$request$type$eisKernelTerminating$this->terminating);
  6.         $this->dispatcher->dispatch($eventKernelEvents::EXCEPTION);
  7.         // a listener might have replaced the exception
  8.         $e $event->getThrowable();
  9.         if (!$event->hasResponse()) {
  1.         if ($pop $request !== $this->requestStack->getMainRequest()) {
  2.             $this->requestStack->push($request);
  3.         }
  4.         try {
  5.             $response $this->handleThrowable($exception$requestself::MAIN_REQUEST);
  6.         } finally {
  7.             if ($pop) {
  8.                 $this->requestStack->pop();
  9.             }
  10.         }
  1.                         if ($hasRun) {
  2.                             throw $e;
  3.                         }
  4.                         $hasRun true;
  5.                         $kernel->terminateWithException($e$request);
  6.                     };
  7.                 }
  8.             } elseif ($event instanceof ConsoleEvent && $app $event->getCommand()->getApplication()) {
  9.                 $output $event->getOutput();
  10.                 if ($output instanceof ConsoleOutputInterface) {
in /home/emiliek/pulse/vendor/symfony/error-handler/ErrorHandler.php :: Symfony\Component\HttpKernel\EventListener\{closure} (line 538)
  1.             $this->exceptionHandler null;
  2.         }
  3.         try {
  4.             if (null !== $exceptionHandler) {
  5.                 $exceptionHandler($exception);
  6.                 return;
  7.             }
  8.             $handlerException ??= $exception;
  9.         } catch (\Throwable $handlerException) {
ErrorHandler->handleException(object(ValueError))

ValueError

unlink(): Argument #1 ($filename) must not contain any null bytes

  1.             if ($csvTime >= $minimalProfileTimestamp) {
  2.                 break;
  3.             }
  4.             @unlink($this->getFilename($csvToken));
  5.             $offset += \strlen($line);
  6.         }
  7.         fclose($handle);
  8.         file_put_contents($file.'.offset'$offset);
  1.             if ($csvTime >= $minimalProfileTimestamp) {
  2.                 break;
  3.             }
  4.             @unlink($this->getFilename($csvToken));
  5.             $offset += \strlen($line);
  6.         }
  7.         fclose($handle);
  8.         file_put_contents($file.'.offset'$offset);
  1.                 $profile->getVirtualType() ?? 'request',
  2.             ], ',''"''\\');
  3.             fclose($file);
  4.             if (=== mt_rand(110)) {
  5.                 $this->removeExpiredProfiles();
  6.             }
  7.         }
  8.         return true;
  9.     }
  1.             if ($collector instanceof LateDataCollectorInterface) {
  2.                 $collector->lateCollect();
  3.             }
  4.         }
  5.         if (!($ret $this->storage->write($profile)) && null !== $this->logger) {
  6.             $this->logger->warning('Unable to store the profiler information.', ['configured_storage' => $this->storage::class]);
  7.         }
  8.         return $ret;
  9.     }
  1.             }
  2.         }
  3.         // save profiles
  4.         foreach ($this->profiles as $request) {
  5.             $this->profiler->saveProfile($this->profiles[$request]);
  6.         }
  7.         $this->profiles = new \SplObjectStorage();
  8.         $this->parents = new \SplObjectStorage();
  9.     }
  1.         $this->priority ??= $dispatcher->getListenerPriority($eventName$this->listener);
  2.         $e $this->stopwatch->start($this->name'event_listener');
  3.         try {
  4.             ($this->optimizedListener ?? $this->listener)($event$eventName$dispatcher);
  5.         } finally {
  6.             if ($e->isStarted()) {
  7.                 $e->stop();
  8.             }
  9.         }
  1.         foreach ($listeners as $listener) {
  2.             if ($stoppable && $event->isPropagationStopped()) {
  3.                 break;
  4.             }
  5.             $listener($event$eventName$this);
  6.         }
  7.     }
  8.     /**
  9.      * Sorts the internal list of listeners for the given event by priority.
  1.         } else {
  2.             $listeners $this->getListeners($eventName);
  3.         }
  4.         if ($listeners) {
  5.             $this->callListeners($listeners$eventName$event);
  6.         }
  7.         return $event;
  8.     }
  1.         try {
  2.             $this->beforeDispatch($eventName$event);
  3.             try {
  4.                 $e $this->stopwatch->start($eventName'section');
  5.                 try {
  6.                     $this->dispatcher->dispatch($event$eventName);
  7.                 } finally {
  8.                     if ($e->isStarted()) {
  9.                         $e->stop();
  10.                     }
  11.                 }
  1.     public function terminate(Request $requestResponse $response): void
  2.     {
  3.         try {
  4.             $this->terminating true;
  5.             $this->dispatcher->dispatch(new TerminateEvent($this$request$response), KernelEvents::TERMINATE);
  6.         } finally {
  7.             $this->terminating false;
  8.         }
  9.     }
  1.         if (false === $this->booted) {
  2.             return;
  3.         }
  4.         if ($this->getHttpKernel() instanceof TerminableInterface) {
  5.             $this->getHttpKernel()->terminate($request$response);
  6.         }
  7.     }
  8.     public function shutdown(): void
  9.     {
  1.         } else {
  2.             $response->send();
  3.         }
  4.         if ($this->kernel instanceof TerminableInterface) {
  5.             $this->kernel->terminate($this->request$response);
  6.         }
  7.         return 0;
  8.     }
  9. }
  1. $app $app(...$args);
  2. exit(
  3.     $runtime
  4.         ->getRunner($app)
  5.         ->run()
  6. );
require_once('/home/emiliek/pulse/vendor/autoload_runtime.php') in /home/emiliek/pulse/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. };

Stack Traces 3

[3/3] RuntimeError
Twig\Error\RuntimeError:
An exception has been thrown during the rendering of a template ("Failed to start the session because headers have already been sent by "/home/emiliek/pulse/vendor/symfony/http-foundation/Response.php" at line 380.").

  at /home/emiliek/pulse/templates/base.html.twig:9
  at Twig\Template->yield(array('app' => object(AppVariable), 'playlists' => array(), 'notification_count' => 0), array('title' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_title'), 'stylesheets' => array(object(__TwigTemplate_bc93bb32e3489d9619f2ed193349e99b), 'block_stylesheets'), 'body' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_body'), 'javascripts' => array(object(__TwigTemplate_bc93bb32e3489d9619f2ed193349e99b), 'block_javascripts'), 'footer' => array(object(__TwigTemplate_bc93bb32e3489d9619f2ed193349e99b), 'block_footer')))
     (/home/emiliek/pulse/var/cache/dev/twig/3e/3ef52f8889db8fa33b7491f8cc338e85.php:54)
  at __TwigTemplate_0f407f05f8b3e1b425014e9b8302effe->doDisplay(array('app' => object(AppVariable), 'playlists' => array(), 'notification_count' => 0), array('title' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_title'), 'body' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_body')))
     (/home/emiliek/pulse/vendor/twig/twig/src/Template.php:387)
  at Twig\Template->yield(array('app' => object(AppVariable), 'playlists' => array(), 'notification_count' => 0), array('title' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_title'), 'body' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_body')))
     (/home/emiliek/pulse/vendor/twig/twig/src/Template.php:343)
  at Twig\Template->display(array())
     (/home/emiliek/pulse/vendor/twig/twig/src/Template.php:358)
  at Twig\Template->render(array())
     (/home/emiliek/pulse/vendor/twig/twig/src/TemplateWrapper.php:35)
  at Twig\TemplateWrapper->render(array())
     (/home/emiliek/pulse/vendor/twig/twig/src/Environment.php:320)
  at Twig\Environment->render('error/403.html.twig', array())
     (/home/emiliek/pulse/vendor/symfony/framework-bundle/Controller/AbstractController.php:431)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView('error/403.html.twig', null, array(), 'render')
     (/home/emiliek/pulse/vendor/symfony/framework-bundle/Controller/AbstractController.php:436)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender('error/403.html.twig', null, array(), null, 'render')
     (/home/emiliek/pulse/vendor/symfony/framework-bundle/Controller/AbstractController.php:250)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render('error/403.html.twig')
     (/home/emiliek/pulse/src/Controller/ErrorController.php:14)
  at App\Controller\ErrorController->accessDenied()
     (/home/emiliek/pulse/vendor/symfony/http-kernel/HttpKernel.php:183)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 2)
     (/home/emiliek/pulse/vendor/symfony/http-kernel/HttpKernel.php:76)
  at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 2, false)
     (/home/emiliek/pulse/vendor/symfony/http-kernel/EventListener/ErrorListener.php:97)
  at Symfony\Component\HttpKernel\EventListener\ErrorListener->onKernelException(object(ExceptionEvent), 'kernel.exception', object(TraceableEventDispatcher))
     (/home/emiliek/pulse/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:115)
  at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(ExceptionEvent), 'kernel.exception', object(TraceableEventDispatcher))
     (/home/emiliek/pulse/vendor/symfony/event-dispatcher/EventDispatcher.php:206)
  at Symfony\Component\EventDispatcher\EventDispatcher->callListeners(array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'kernel.exception', object(ExceptionEvent))
     (/home/emiliek/pulse/vendor/symfony/event-dispatcher/EventDispatcher.php:56)
  at Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object(ExceptionEvent), 'kernel.exception')
     (/home/emiliek/pulse/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:122)
  at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(ExceptionEvent), 'kernel.exception')
     (/home/emiliek/pulse/vendor/symfony/http-kernel/HttpKernel.php:241)
  at Symfony\Component\HttpKernel\HttpKernel->handleThrowable(object(ValueError), object(Request), 1)
     (/home/emiliek/pulse/vendor/symfony/http-kernel/HttpKernel.php:134)
  at Symfony\Component\HttpKernel\HttpKernel->terminateWithException(object(ValueError), object(Request))
     (/home/emiliek/pulse/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php:84)
  at Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::Symfony\Component\HttpKernel\EventListener\{closure}(object(ValueError))
     (/home/emiliek/pulse/vendor/symfony/error-handler/ErrorHandler.php:538)
  at Symfony\Component\ErrorHandler\ErrorHandler->handleException(object(ValueError))                
[2/3] RuntimeException
RuntimeException:
Failed to start the session because headers have already been sent by "/home/emiliek/pulse/vendor/symfony/http-foundation/Response.php" at line 380.

  at /home/emiliek/pulse/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php:116
  at Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage->start()
     (/home/emiliek/pulse/vendor/symfony/http-foundation/Session/Session.php:59)
  at Symfony\Component\HttpFoundation\Session\Session->start()
     (/home/emiliek/pulse/vendor/symfony/security-csrf/TokenStorage/SessionTokenStorage.php:73)
  at Symfony\Component\Security\Csrf\TokenStorage\SessionTokenStorage->hasToken('https-authenticate')
     (/home/emiliek/pulse/vendor/symfony/security-csrf/CsrfTokenManager.php:69)
  at Symfony\Component\Security\Csrf\CsrfTokenManager->getToken('authenticate')
     (/home/emiliek/pulse/vendor/symfony/form/FormRenderer.php:54)
  at Symfony\Component\Form\FormRenderer->renderCsrfToken('authenticate')
     (/home/emiliek/pulse/var/cache/dev/twig/09/0965aa9c336476060fc6a55a691575c0.php:63)
  at __TwigTemplate_bc93bb32e3489d9619f2ed193349e99b->doDisplay(array('app' => object(AppVariable), 'playlists' => array(), 'notification_count' => 0), array('title' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_title'), 'stylesheets' => array(object(__TwigTemplate_bc93bb32e3489d9619f2ed193349e99b), 'block_stylesheets'), 'body' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_body'), 'javascripts' => array(object(__TwigTemplate_bc93bb32e3489d9619f2ed193349e99b), 'block_javascripts'), 'footer' => array(object(__TwigTemplate_bc93bb32e3489d9619f2ed193349e99b), 'block_footer')))
     (/home/emiliek/pulse/vendor/twig/twig/src/Template.php:387)
  at Twig\Template->yield(array('app' => object(AppVariable), 'playlists' => array(), 'notification_count' => 0), array('title' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_title'), 'stylesheets' => array(object(__TwigTemplate_bc93bb32e3489d9619f2ed193349e99b), 'block_stylesheets'), 'body' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_body'), 'javascripts' => array(object(__TwigTemplate_bc93bb32e3489d9619f2ed193349e99b), 'block_javascripts'), 'footer' => array(object(__TwigTemplate_bc93bb32e3489d9619f2ed193349e99b), 'block_footer')))
     (/home/emiliek/pulse/var/cache/dev/twig/3e/3ef52f8889db8fa33b7491f8cc338e85.php:54)
  at __TwigTemplate_0f407f05f8b3e1b425014e9b8302effe->doDisplay(array('app' => object(AppVariable), 'playlists' => array(), 'notification_count' => 0), array('title' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_title'), 'body' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_body')))
     (/home/emiliek/pulse/vendor/twig/twig/src/Template.php:387)
  at Twig\Template->yield(array('app' => object(AppVariable), 'playlists' => array(), 'notification_count' => 0), array('title' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_title'), 'body' => array(object(__TwigTemplate_0f407f05f8b3e1b425014e9b8302effe), 'block_body')))
     (/home/emiliek/pulse/vendor/twig/twig/src/Template.php:343)
  at Twig\Template->display(array())
     (/home/emiliek/pulse/vendor/twig/twig/src/Template.php:358)
  at Twig\Template->render(array())
     (/home/emiliek/pulse/vendor/twig/twig/src/TemplateWrapper.php:35)
  at Twig\TemplateWrapper->render(array())
     (/home/emiliek/pulse/vendor/twig/twig/src/Environment.php:320)
  at Twig\Environment->render('error/403.html.twig', array())
     (/home/emiliek/pulse/vendor/symfony/framework-bundle/Controller/AbstractController.php:431)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView('error/403.html.twig', null, array(), 'render')
     (/home/emiliek/pulse/vendor/symfony/framework-bundle/Controller/AbstractController.php:436)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender('error/403.html.twig', null, array(), null, 'render')
     (/home/emiliek/pulse/vendor/symfony/framework-bundle/Controller/AbstractController.php:250)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render('error/403.html.twig')
     (/home/emiliek/pulse/src/Controller/ErrorController.php:14)
  at App\Controller\ErrorController->accessDenied()
     (/home/emiliek/pulse/vendor/symfony/http-kernel/HttpKernel.php:183)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 2)
     (/home/emiliek/pulse/vendor/symfony/http-kernel/HttpKernel.php:76)
  at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 2, false)
     (/home/emiliek/pulse/vendor/symfony/http-kernel/EventListener/ErrorListener.php:97)
  at Symfony\Component\HttpKernel\EventListener\ErrorListener->onKernelException(object(ExceptionEvent), 'kernel.exception', object(TraceableEventDispatcher))
     (/home/emiliek/pulse/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:115)
  at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(ExceptionEvent), 'kernel.exception', object(TraceableEventDispatcher))
     (/home/emiliek/pulse/vendor/symfony/event-dispatcher/EventDispatcher.php:206)
  at Symfony\Component\EventDispatcher\EventDispatcher->callListeners(array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'kernel.exception', object(ExceptionEvent))
     (/home/emiliek/pulse/vendor/symfony/event-dispatcher/EventDispatcher.php:56)
  at Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object(ExceptionEvent), 'kernel.exception')
     (/home/emiliek/pulse/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:122)
  at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(ExceptionEvent), 'kernel.exception')
     (/home/emiliek/pulse/vendor/symfony/http-kernel/HttpKernel.php:241)
  at Symfony\Component\HttpKernel\HttpKernel->handleThrowable(object(ValueError), object(Request), 1)
     (/home/emiliek/pulse/vendor/symfony/http-kernel/HttpKernel.php:134)
  at Symfony\Component\HttpKernel\HttpKernel->terminateWithException(object(ValueError), object(Request))
     (/home/emiliek/pulse/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php:84)
  at Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::Symfony\Component\HttpKernel\EventListener\{closure}(object(ValueError))
     (/home/emiliek/pulse/vendor/symfony/error-handler/ErrorHandler.php:538)
  at Symfony\Component\ErrorHandler\ErrorHandler->handleException(object(ValueError))                
[1/3] ValueError
ValueError:
unlink(): Argument #1 ($filename) must not contain any null bytes

  at /home/emiliek/pulse/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php:341
  at unlink(binary string)
     (/home/emiliek/pulse/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php:341)
  at Symfony\Component\HttpKernel\Profiler\FileProfilerStorage->removeExpiredProfiles()
     (/home/emiliek/pulse/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php:193)
  at Symfony\Component\HttpKernel\Profiler\FileProfilerStorage->write(object(Profile))
     (/home/emiliek/pulse/vendor/symfony/http-kernel/Profiler/Profiler.php:97)
  at Symfony\Component\HttpKernel\Profiler\Profiler->saveProfile(object(Profile))
     (/home/emiliek/pulse/vendor/symfony/http-kernel/EventListener/ProfilerListener.php:129)
  at Symfony\Component\HttpKernel\EventListener\ProfilerListener->onKernelTerminate(object(TerminateEvent), 'kernel.terminate', object(TraceableEventDispatcher))
     (/home/emiliek/pulse/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:115)
  at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(TerminateEvent), 'kernel.terminate', object(TraceableEventDispatcher))
     (/home/emiliek/pulse/vendor/symfony/event-dispatcher/EventDispatcher.php:206)
  at Symfony\Component\EventDispatcher\EventDispatcher->callListeners(array(object(WrappedListener)), 'kernel.terminate', object(TerminateEvent))
     (/home/emiliek/pulse/vendor/symfony/event-dispatcher/EventDispatcher.php:56)
  at Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object(TerminateEvent), 'kernel.terminate')
     (/home/emiliek/pulse/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:122)
  at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(TerminateEvent), 'kernel.terminate')
     (/home/emiliek/pulse/vendor/symfony/http-kernel/HttpKernel.php:114)
  at Symfony\Component\HttpKernel\HttpKernel->terminate(object(Request), object(Response))
     (/home/emiliek/pulse/vendor/symfony/http-kernel/Kernel.php:145)
  at Symfony\Component\HttpKernel\Kernel->terminate(object(Request), object(Response))
     (/home/emiliek/pulse/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:53)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (/home/emiliek/pulse/vendor/autoload_runtime.php:29)
  at require_once('/home/emiliek/pulse/vendor/autoload_runtime.php')
     (/home/emiliek/pulse/public/index.php:5)