Error 500 Internal Server Error

GET https://uprim-madagascar.com/profil

Forwarded to ErrorController (88121f)

SecurityController :: profil

Request

GET Parameters

None

POST Parameters

None

Uploaded Files

None

Request Attributes

Key Value
_controller
"App\Controller\SecurityController::profil"
_firewall_context
"security.firewall.map.context.main"
_remove_csp_headers
true
_route
"user_profil"
_route_params
[]
_security_firewall_run
"_security_main"
_stopwatch_token
"4512ef"

Request Headers

Header Value
accept
"*/*"
accept-encoding
"gzip, br, deflate"
from
"gptbot(at)openai.com"
host
"uprim-madagascar.com"
user-agent
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"
x-openai-host-hash
"982334256"
x-php-ob-level
"1"

Request Content

Request content not available (it was retrieved as a resource).

Response

Response Headers

Header Value
cache-control
"no-cache, private"
content-type
"text/html; charset=UTF-8"
date
"Tue, 16 Dec 2025 05:01:28 GMT"
vary
"Accept"
x-debug-exception
"Impossible%20to%20access%20an%20attribute%20%28%22fullname%22%29%20on%20a%20null%20variable."
x-debug-exception-file
"%2Fvar%2Fwww%2Fulearning%2Ftemplates%2Fuser%2Fprofil.html.twig:4"
x-debug-token
"aebe18"
x-debug-token-link
"https://uprim-madagascar.com/_profiler/88121f"
x-previous-debug-token
"88121f"
x-robots-tag
"noindex"

Cookies

Request Cookies

No request cookies

Response Cookies

No response cookies

Session

Session Metadata

No session metadata

Session Attributes

No session attributes

Session Usage

0 Usages
Stateless check enabled

Session not used.

Flashes

Flashes

No flash messages were created.

Server Parameters

Server Parameters

Defined in .env

Key Value
APP_ENV
"dev"
APP_SECRET
"6c84b7db6db9def0261f8438bf1ba0ff"
APP_TIMEZONE
"Africa/Nairobi"
CORS_ALLOW_ORIGIN
"^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$"
DATABASE_URL
"mysql://siteUserApp:Vio9MxkwXYfDx@127.0.0.1:3306/elrn_app_db?serverVersion=mariadb-10.6.22&charset=utf8mb4"
DEBUG
"true"
MESSENGER_TRANSPORT_DSN
"doctrine://default?auto_setup=0"

Defined as regular env variables

Key Value
APP_DEBUG
"1"
CONTEXT_DOCUMENT_ROOT
"/var/www/ulearning/public"
CONTEXT_PREFIX
""
DOCUMENT_ROOT
"/var/www/ulearning/public"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
HTTP_ACCEPT
"*/*"
HTTP_ACCEPT_ENCODING
"gzip, br, deflate"
HTTP_FROM
"gptbot(at)openai.com"
HTTP_HOST
"uprim-madagascar.com"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"
HTTP_X_OPENAI_HOST_HASH
"982334256"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
PHP_SELF
"/index.php"
QUERY_STRING
""
REMOTE_ADDR
"74.7.227.38"
REMOTE_PORT
"60198"
REQUEST_METHOD
"GET"
REQUEST_SCHEME
"https"
REQUEST_TIME
1765861288
REQUEST_TIME_FLOAT
1765861288.8292
REQUEST_URI
"/profil"
SCRIPT_FILENAME
"/var/www/ulearning/public/index.php"
SCRIPT_NAME
"/index.php"
SERVER_ADDR
"102.16.63.66"
SERVER_ADMIN
"[no address given]"
SERVER_NAME
"uprim-madagascar.com"
SERVER_PORT
"443"
SERVER_PROTOCOL
"HTTP/1.1"
SERVER_SIGNATURE
"<address>Apache/2.4.52 (Ubuntu) Server at uprim-madagascar.com Port 443</address>\n"
SERVER_SOFTWARE
"Apache/2.4.52 (Ubuntu)"
SSL_TLS_SNI
"uprim-madagascar.com"
SYMFONY_DOTENV_VARS
"APP_ENV,APP_SECRET,DATABASE_URL,MESSENGER_TRANSPORT_DSN,CORS_ALLOW_ORIGIN,APP_TIMEZONE,DEBUG"

Sub Requests 1

ErrorController (token = 88121f)

Key Value
_controller
"error_controller"
_stopwatch_token
"f87e95"
exception
Twig\Error\RuntimeError {#552
  #message: "Impossible to access an attribute ("fullname") on a null variable."
  #code: 0
  #file: "/var/www/ulearning/templates/user/profil.html.twig"
  #line: 4
  -lineno: 4
  -name: "user/profil.html.twig"
  -rawMessage: "Impossible to access an attribute ("fullname") on a null variable."
  -sourcePath: "/var/www/ulearning/templates/user/profil.html.twig"
  -sourceCode: """
    {% extends 'base.html.twig' %}\n
    \n
    {% block title %}\n
    \tProfil - {{ user.fullname|capitalize }}\n
    {% endblock %}\n
    \n
    {% block body %}\n
    <style>\n
    \t.profile-header {\n
    \t\tbackground: linear-gradient(135deg, #3498db, #6f42c1);\n
    \t\tcolor: white;\n
    \t\tpadding: 2rem;\n
    \t\tborder-radius: 10px;\n
    \t\tmargin-bottom: 1.5rem;\n
    \t\tbox-shadow: 0 4px 10px rgba(0,0,0,.15);\n
    \t}\n
    \t.profile-header img.avatar {\n
    \t\twidth: 100px;\n
    \t\theight: 100px;\n
    \t\tborder-radius: 50%;\n
    \t\tobject-fit: cover;\n
    \t\tborder: 3px solid #fff;\n
    \t\tbox-shadow: 0 0 10px rgba(0,0,0,.1);\n
    \t}\n
    \t.card-info {\n
    \t\tborder-radius: 10px;\n
    \t\tbox-shadow: 0 2px 8px rgba(0,0,0,.1);\n
    \t\ttransition: box-shadow 0.3s ease;\n
    \t}\n
    \t.card-info:hover {\n
    \t\tbox-shadow: 0 4px 12px rgba(0,0,0,.2);\n
    \t}\n
    \t.card-info .card-title {\n
    \t\tcolor: #3498db;\n
    \t}\n
    \t.btn-update {\n
    \t\tbackground-color: #6f42c1;\n
    \t\tborder: none;\n
    \t}\n
    \t.btn-update:hover {\n
    \t\tbackground-color: #59329a;\n
    \t}\n
    \t.label-info {\n
    \t\tfont-weight: 600;\n
    \t\tcolor: #555;\n
    \t}\n
    \t.value-info {\n
    \t\tcolor: #333;\n
    \t}\n
    \t@media (max-width: 768px) {\n
    \t\t.profile-header {\n
    \t\t\ttext-align: center;\n
    \t\t}\n
    \t}\n
    </style>\n
    \n
    <div class="container py-4">\n
    \t<div class="profile-header text-center">\n
    \t\t<img class="avatar mb-3" src="{{ asset('ressources/picture/avatar.png') }}" alt="{{ user.fullname }}">\n
    \t\t<h3>{{ user.fullname }}</h3>\n
    \t\t<p>{{ user.email }}</p>\n
    \t</div>\n
    \n
    \t<div class="row">\n
    \t\t<div class="col-md-6 mb-4">\n
    \t\t\t<div class="card card-info p-4">\n
    \t\t\t\t<h5 class="card-title mb-3">Informations personnelles</h5>\n
    \t\t\t\t<div class="mb-2">\n
    \t\t\t\t\t<span class="label-info">Nom complet :</span>\n
    \t\t\t\t\t<span class="value-info">{{ user.lastname | upper }} {{ user.firstname }}</span>\n
    \t\t\t\t</div>\n
    \t\t\t\t<div class="mb-2">\n
    \t\t\t\t\t<span class="label-info">E-mail :</span>\n
    \t\t\t\t\t<span class="value-info">{{ user.email }}</span>\n
    \t\t\t\t</div>\n
    \t\t\t\t<div class="mb-2">\n
    \t\t\t\t\t<span class="label-info">Matricule :</span>\n
    \t\t\t\t\t<span class="value-info">{{ user.matricule|default('N/A') }}</span>\n
    \t\t\t\t</div>\n
    \t\t\t\t<div class="mb-2">\n
    \t\t\t\t\t<span class="label-info">Téléphone :</span>\n
    \t\t\t\t\t<span class="value-info">{{ user.phone|default('N/A') }}</span>\n
    \t\t\t\t</div>\n
    \t\t\t</div>\n
    \t\t</div>\n
    \n
    \t\t<div class="col-md-6 mb-4">\n
    \t\t\t<div class="card card-info p-4">\n
    \t\t\t\t<h5 class="card-title mb-3">Formation actuelle</h5>\n
    \t\t\t\t<div class="mb-2">\n
    \t\t\t\t\t<span class="label-info">Niveau :</span>\n
    \t\t\t\t\t<span class="value-info">{{ app.user.studentGroup.level.name|default('N/A') }}</span>\n
    \t\t\t\t</div>\n
    \t\t\t\t<div class="mb-2">\n
    \t\t\t\t\t<span class="label-info">Groupe :</span>\n
    \t\t\t\t\t<span class="value-info">{{ app.user.studentGroup|default('N/A') }}</span>\n
    \t\t\t\t</div>\n
    \t\t\t</div>\n
    \t\t</div>\n
    \t</div>\n
    \n
    \t<div class="text-center mt-4">\n
    \t\t<a href="{{ path('user_profil_update') }}" class="btn btn-update btn-lg text-white">Modifier mon mot de passe</a>\n
    \t</div>\n
    </div>\n
    {% endblock %}\n
    """
  trace: {
    /var/www/ulearning/templates/user/profil.html.twig:4 {
      twig_get_attribute(Environment $env, Source $source, $object, $item, array $arguments = [], $type = 'any', $isDefinedTest = false, $ignoreStrictCheck = false, $sandboxed = false, int $lineno = -1) …
      › {% block title %}\tProfil - {{ user.fullname|capitalize }}{% endblock %}
    }
    /var/www/ulearning/var/cache/dev/twig/91/91926271d50ffb75b4547ebf8b96b176.php:70 {
      __TwigTemplate_fd3f716dadf8a7e7e271252353e551b0->block_title($context, array $blocks = []) …
      › echo "\tProfil - ";echo twig_escape_filter($this->env, twig_capitalize_string_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["user"]) || array_key_exists("user", $context) ? $context["user"] : (function () { throw new RuntimeError('Variable "user" does not exist.', 4, $this->source); })()), "fullname", [], "any", false, false, false, 4)), "html", null, true);echo "
    }
    /var/www/ulearning/vendor/twig/twig/src/Template.php:171 {
      Twig\Template->displayBlock($name, array $context, array $blocks = [], $useBlocks = true, self $templateContext = null) …
      › try {    $template->$block($context, $blocks);} catch (Error $e) {
    }
    /var/www/ulearning/templates/base.html.twig:9 {
      __TwigTemplate_700fc5f655da501ab883f8838909589a->doDisplay(array $context, array $blocks = []) …
      › <title>\r\t{% block title %}U-LEARNING\r\t{% endblock %}\r
    }
    /var/www/ulearning/vendor/twig/twig/src/Template.php:394 {
      Twig\Template->displayWithErrorHandling(array $context, array $blocks = []) …
      › try {    $this->doDisplay($context, $blocks);} catch (Error $e) {
    }
    /var/www/ulearning/vendor/twig/twig/src/Template.php:367 {
      Twig\Template->display(array $context, array $blocks = []) …
      › {    $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));}
    }
    /var/www/ulearning/var/cache/dev/twig/91/91926271d50ffb75b4547ebf8b96b176.php:49 {
      __TwigTemplate_fd3f716dadf8a7e7e271252353e551b0->doDisplay(array $context, array $blocks = []) …
      › $this->parent = $this->loadTemplate("base.html.twig", "user/profil.html.twig", 1);$this->parent->display($context, array_merge($this->blocks, $blocks));}
    /var/www/ulearning/vendor/twig/twig/src/Template.php:394 {
      Twig\Template->displayWithErrorHandling(array $context, array $blocks = []) …
      › try {    $this->doDisplay($context, $blocks);} catch (Error $e) {
    }
    /var/www/ulearning/vendor/twig/twig/src/Template.php:367 {
      Twig\Template->display(array $context, array $blocks = []) …
      › {    $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));}
    }
    /var/www/ulearning/vendor/twig/twig/src/Template.php:379 {
      Twig\Template->render(array $context) …
      › try {    $this->display($context);} catch (\Throwable $e) {
    }
    /var/www/ulearning/vendor/twig/twig/src/TemplateWrapper.php:40 {
      Twig\TemplateWrapper->render(array $context = []): string …
      ›     // as it should only be used by internal code    return $this->template->render($context, \func_get_args()[1] ?? []);}
    }
    /var/www/ulearning/vendor/twig/twig/src/Environment.php:280 {
      Twig\Environment->render($name, array $context = []): string …
      › {    return $this->load($name)->render($context);}
    }
    /var/www/ulearning/vendor/symfony/framework-bundle/Controller/AbstractController.php:243 {
      Symfony\Bundle\FrameworkBundle\Controller\AbstractController->renderView(string $view, array $parameters = []): string …
      › 
      ›     return $this->container->get('twig')->render($view, $parameters);}
    }
    /var/www/ulearning/vendor/symfony/framework-bundle/Controller/AbstractController.php:254 {
      Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render(string $view, array $parameters = [], Response $response = null): Response …
      › {    $content = $this->renderView($view, $parameters);    $response ??= new Response();
    }
    /var/www/ulearning/src/Controller/SecurityController.php:42 {
      App\Controller\SecurityController->profil(): Response …
      › {\r    return $this->render('user/profil.html.twig', [\r        'user' => $this->getUser()\r
    }
    /var/www/ulearning/vendor/symfony/http-kernel/HttpKernel.php:181 {
      Symfony\Component\HttpKernel\HttpKernel->handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response …
      › // call controller$response = $controller(...$arguments);}
    /var/www/ulearning/vendor/symfony/http-kernel/HttpKernel.php:76 {
      Symfony\Component\HttpKernel\HttpKernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
      › try {    return $response = $this->handleRaw($request, $type);} catch (\Throwable $e) {
    }
    /var/www/ulearning/vendor/symfony/http-kernel/Kernel.php:197 {
      Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
      › try {    return $this->getHttpKernel()->handle($request, $type, $catch);} finally {
    }
    /var/www/ulearning/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35 {
      Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run(): int …
      › {    $response = $this->kernel->handle($this->request);    $response->send();
    }
    /var/www/ulearning/vendor/autoload_runtime.php:29 {
      require_once …
      ›         ->getRunner($app)        ->run());
    }
    /var/www/ulearning/public/index.php:5 {
      › 
      › require_once dirname(__DIR__).'/vendor/autoload_runtime.php';arguments: {
        "/var/www/ulearning/vendor/autoload_runtime.php"
      }
    }
  }
}
logger
Symfony\Bridge\Monolog\Logger {#73 …9}