Error 500 Internal Server Error

GET https://saveurs.testaimpros.com/api/products

ErrorController

Request

GET Parameters

None

POST Parameters

None

Uploaded Files

None

Request Attributes

Key Value
_controller
"error_controller"
_stopwatch_token
"d7feb9"
exception
Doctrine\DBAL\Exception\ConnectionException {#839
  #message: "An exception occurred in the driver: SQLSTATE[HY000] [2002] Connection refused"
  #code: 2002
  #file: "/home/testaimp/web/saveurs/www/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php"
  #line: 91
  -previous: Doctrine\DBAL\Driver\PDO\Exception {#838 …}
  -query: null
  trace: {
    /home/testaimp/web/saveurs/www/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php:91 {
      Doctrine\DBAL\Driver\API\MySQL\ExceptionConverter->convert(Exception $exception, ?Query $query): DriverException …
      › 2005,2054 => new ConnectionException($exception, $query),2006,
    }
    /home/testaimp/web/saveurs/www/vendor/doctrine/dbal/src/Connection.php:1460 {
      Doctrine\DBAL\Connection->handleDriverException(Exception $driverException, ?Query $query): DriverException …
      › $this->exceptionConverter ??= $this->driver->getExceptionConverter();$exception                  = $this->exceptionConverter->convert($driverException, $query);}
    /home/testaimp/web/saveurs/www/vendor/doctrine/dbal/src/Connection.php:1402 {
      Doctrine\DBAL\Connection->convertException(Exception $e): DriverException …
      › {    return $this->handleDriverException($e, null);}
    }
    /home/testaimp/web/saveurs/www/vendor/doctrine/dbal/src/Connection.php:224 {
      Doctrine\DBAL\Connection->connect(): Connection …
      › } catch (Driver\Exception $e) {    throw $this->convertException($e);}
    }
    /home/testaimp/web/saveurs/www/vendor/doctrine/dbal/src/Connection.php:792 {
      Doctrine\DBAL\Connection->executeQuery(string $sql, array $params = [], array $types = [], ?QueryCacheProfile $qcp = null): Result …
      › 
      › $connection = $this->connect();}
    /home/testaimp/web/saveurs/www/vendor/doctrine/orm/src/Persisters/Entity/BasicEntityPersister.php:963 {
      Doctrine\ORM\Persisters\Entity\BasicEntityPersister->loadAll(array $criteria = [], ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array …
      › [$params, $types] = $this->expandParameters($criteria);$stmt             = $this->conn->executeQuery($sql, $params, $types);}
    /home/testaimp/web/saveurs/www/vendor/doctrine/orm/src/EntityRepository.php:110 {
      Doctrine\ORM\EntityRepository->findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array …
      › 
      ›     return $persister->loadAll($criteria, $orderBy, $limit, $offset);}
    }
    /home/testaimp/web/saveurs/www/vendor/doctrine/doctrine-bundle/src/Repository/ServiceEntityRepositoryProxy.php:73 {
      Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepositoryProxy->findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array …
      ›     return ($this->repository ??= $this->resolveRepository())        ->findBy($criteria, $orderBy, $limit, $offset);}
    }
    /home/testaimp/web/saveurs/www/vendor/doctrine/orm/src/EntityRepository.php:96 {
      Doctrine\ORM\EntityRepository->findAll(): array …
      › {    return $this->findBy([]);}
    }
    /home/testaimp/web/saveurs/www/src/Controller/Api/ProductController.php:17 {
      App\Controller\Api\ProductController->index(ProductRepository $productRepository): JsonResponse …
      › {    $products = $productRepository->findAll();}
    /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:183 {
      Symfony\Component\HttpKernel\HttpKernel->handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response …
      › // call controller$response = $controller(...$arguments);}
    /home/testaimp/web/saveurs/www/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) {
    }
    /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/Kernel.php:193 {
      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 {
    }
    /home/testaimp/web/saveurs/www/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35 {
      Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run(): int …
      › {    $response = $this->kernel->handle($this->request);}
    /home/testaimp/web/saveurs/www/vendor/autoload_runtime.php:32 {
      require_once …
      ›         ->getRunner($app)        ->run());
    }
    /home/testaimp/web/saveurs/www/public/index.php:5 {
      › 
      › require_once dirname(__DIR__).'/vendor/autoload_runtime.php';arguments: {
        "/home/testaimp/web/saveurs/www/vendor/autoload_runtime.php"
      }
    }
  }
}
logger
Symfony\Bridge\Monolog\Processor\DebugProcessor {#66
  -records: [
    2 => [
      [
        "timestamp" => 1773224302
        "timestamp_rfc3339" => "2026-03-11T11:18:22.786+01:00"
        "message" => "Matched route "{route}"."
        "priority" => 200
        "priorityName" => "INFO"
        "context" => [
          "route" => "api_products"
          "route_parameters" => [
            "_route" => "api_products"
            "_controller" => "App\Controller\Api\ProductController::index"
          ]
          "request_uri" => "https://saveurs.testaimpros.com/api/products"
          "method" => "GET"
        ]
        "channel" => "request"
      ]
      [
        "timestamp" => 1773224302
        "timestamp_rfc3339" => "2026-03-11T11:18:22.788+01:00"
        "message" => "Checking for authenticator support."
        "priority" => 100
        "priorityName" => "DEBUG"
        "context" => [
          "firewall_name" => "main"
          "authenticators" => 0
        ]
        "channel" => "security"
      ]
      [
        "timestamp" => 1773224302
        "timestamp_rfc3339" => "2026-03-11T11:18:22.803+01:00"
        "message" => "Connecting with parameters {params}"
        "priority" => 200
        "priorityName" => "INFO"
        "context" => [
          "params" => [
            "use_savepoints" => true
            "driver" => "pdo_mysql"
            "idle_connection_ttl" => 600
            "host" => "127.0.0.1"
            "port" => 3306
            "user" => "saveurs_users"
            "password" => "<redacted>"
            "driverOptions" => []
            "defaultTableOptions" => []
            "dbname" => "saveurs"
            "serverVersion" => "11.4.9-MariaDB"
            "charset" => "utf8mb4"
          ]
        ]
        "channel" => "doctrine"
      ]
      [
        "timestamp" => 1773224302
        "timestamp_rfc3339" => "2026-03-11T11:18:22.805+01:00"
        "message" => "Uncaught PHP Exception Doctrine\DBAL\Exception\ConnectionException: "An exception occurred in the driver: SQLSTATE[HY000] [2002] Connection refused" at ExceptionConverter.php line 91"
        "priority" => 500
        "priorityName" => "CRITICAL"
        "context" => [
          "exception" => Doctrine\DBAL\Exception\ConnectionException {#839
            #message: "An exception occurred in the driver: SQLSTATE[HY000] [2002] Connection refused"
            #code: 2002
            #file: "/home/testaimp/web/saveurs/www/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php"
            #line: 91
            -previous: Doctrine\DBAL\Driver\PDO\Exception {#838 …}
            -query: null
            trace: {
              /home/testaimp/web/saveurs/www/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php:91 {
                Doctrine\DBAL\Driver\API\MySQL\ExceptionConverter->convert(Exception $exception, ?Query $query): DriverException …
                › 2005,2054 => new ConnectionException($exception, $query),2006,
              }
              /home/testaimp/web/saveurs/www/vendor/doctrine/dbal/src/Connection.php:1460 {
                Doctrine\DBAL\Connection->handleDriverException(Exception $driverException, ?Query $query): DriverException …
                › $this->exceptionConverter ??= $this->driver->getExceptionConverter();$exception                  = $this->exceptionConverter->convert($driverException, $query);}
              /home/testaimp/web/saveurs/www/vendor/doctrine/dbal/src/Connection.php:1402 {
                Doctrine\DBAL\Connection->convertException(Exception $e): DriverException …
                › {    return $this->handleDriverException($e, null);}
              }
              /home/testaimp/web/saveurs/www/vendor/doctrine/dbal/src/Connection.php:224 {
                Doctrine\DBAL\Connection->connect(): Connection …
                › } catch (Driver\Exception $e) {    throw $this->convertException($e);}
              }
              /home/testaimp/web/saveurs/www/vendor/doctrine/dbal/src/Connection.php:792 {
                Doctrine\DBAL\Connection->executeQuery(string $sql, array $params = [], array $types = [], ?QueryCacheProfile $qcp = null): Result …
                › 
                › $connection = $this->connect();}
              /home/testaimp/web/saveurs/www/vendor/doctrine/orm/src/Persisters/Entity/BasicEntityPersister.php:963 {
                Doctrine\ORM\Persisters\Entity\BasicEntityPersister->loadAll(array $criteria = [], ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array …
                › [$params, $types] = $this->expandParameters($criteria);$stmt             = $this->conn->executeQuery($sql, $params, $types);}
              /home/testaimp/web/saveurs/www/vendor/doctrine/orm/src/EntityRepository.php:110 {
                Doctrine\ORM\EntityRepository->findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array …
                › 
                ›     return $persister->loadAll($criteria, $orderBy, $limit, $offset);}
              }
              /home/testaimp/web/saveurs/www/vendor/doctrine/doctrine-bundle/src/Repository/ServiceEntityRepositoryProxy.php:73 {
                Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepositoryProxy->findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array …
                ›     return ($this->repository ??= $this->resolveRepository())        ->findBy($criteria, $orderBy, $limit, $offset);}
              }
              /home/testaimp/web/saveurs/www/vendor/doctrine/orm/src/EntityRepository.php:96 {
                Doctrine\ORM\EntityRepository->findAll(): array …
                › {    return $this->findBy([]);}
              }
              /home/testaimp/web/saveurs/www/src/Controller/Api/ProductController.php:17 {
                App\Controller\Api\ProductController->index(ProductRepository $productRepository): JsonResponse …
                › {    $products = $productRepository->findAll();}
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:183 {
                Symfony\Component\HttpKernel\HttpKernel->handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response …
                › // call controller$response = $controller(...$arguments);}
              /home/testaimp/web/saveurs/www/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) {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/Kernel.php:193 {
                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 {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35 {
                Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run(): int …
                › {    $response = $this->kernel->handle($this->request);}
              /home/testaimp/web/saveurs/www/vendor/autoload_runtime.php:32 {
                require_once …
                ›         ->getRunner($app)        ->run());
              }
              /home/testaimp/web/saveurs/www/public/index.php:5 {
                › 
                › require_once dirname(__DIR__).'/vendor/autoload_runtime.php';arguments: {
                  "/home/testaimp/web/saveurs/www/vendor/autoload_runtime.php"
                }
              }
            }
          }
        ]
        "channel" => "request"
      ]
      [
        "timestamp" => 1773224302
        "timestamp_rfc3339" => "2026-03-11T11:18:22.823+01:00"
        "message" => "User Deprecated: Since vich/uploader-bundle 2.9: The "Vich\UploaderBundle\Mapping\Annotation\Uploadable" class is deprecated, use "Vich\UploaderBundle\Mapping\Attribute\Uploadable" instead."
        "priority" => 200
        "priorityName" => "INFO"
        "context" => [
          "exception" => ErrorException {#1352
            #message: "User Deprecated: Since vich/uploader-bundle 2.9: The "Vich\UploaderBundle\Mapping\Annotation\Uploadable" class is deprecated, use "Vich\UploaderBundle\Mapping\Attribute\Uploadable" instead."
            #code: 0
            #file: "/home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Mapping/Annotation/Uploadable.php"
            #line: 24
            #severity: E_USER_DEPRECATED
            trace: {
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Mapping/Annotation/Uploadable.php:24 {
                Vich\UploaderBundle\Mapping\Annotation\Uploadable->__construct() …
                › {    trigger_deprecation('vich/uploader-bundle', '2.9', 'The "Vich\UploaderBundle\Mapping\Annotation\Uploadable" class is deprecated, use "Vich\UploaderBundle\Mapping\Attribute\Uploadable" instead.');}
              }
              /home/testaimp/web/saveurs/www/src/Entity/Product.php:13 {
                ReflectionAttribute->newInstance(): object …
                › #[ORM\Entity(repositoryClass: ProductRepository::class)]#[Vich\Uploadable] // <--- AJOUT ICIclass Product
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeReader.php:122 {
                Vich\UploaderBundle\Metadata\Driver\AttributeReader->convertToAttributeInstances(array $attributes): array …
                › $attributeName = $attribute->getName();$instance = $attribute->newInstance();}
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeReader.php:15 {
                Vich\UploaderBundle\Metadata\Driver\AttributeReader->getClassAttributes(ReflectionClass $class): array …
                › {    return $this->convertToAttributeInstances($class->getAttributes());}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeReader.php:20 {
                Vich\UploaderBundle\Metadata\Driver\AttributeReader->getClassAttribute(ReflectionClass $class, string $attributeName): AttributeInterface …
                › {    return $this->getClassAttributes($class)[$attributeName] ?? null;}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeDriver.php:104 {
                Vich\UploaderBundle\Metadata\Driver\AttributeDriver->isUploadable(ReflectionClass $class): bool …
                › // Support both new Attribute\ and deprecated Annotation\ namespaces$uploadable = $this->reader->getClassAttribute($class, Uploadable::class);if (null === $uploadable) {
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeDriver.php:93 {
                Vich\UploaderBundle\Metadata\Driver\AttributeDriver->getAllClassNames(): array …
                › foreach ($metadata as $classMeta) {    if ($this->isUploadable(new \ReflectionClass($classMeta->getName()))) {        $classes[] = $classMeta->getName();
              }
              /home/testaimp/web/saveurs/www/vendor/jms/metadata/src/Driver/DriverChain.php:57 {
                Metadata\Driver\DriverChain->getAllClassNames(): array …
                › 
                › $driverClasses = $driver->getAllClassNames();if (!empty($driverClasses)) {
              }
              /home/testaimp/web/saveurs/www/vendor/jms/metadata/src/MetadataFactory.php:145 {
                Metadata\MetadataFactory->getAllClassNames(): array …
                › 
                ›     return $this->driver->getAllClassNames();}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/MetadataReader.php:66 {
                Vich\UploaderBundle\Metadata\MetadataReader->getUploadableClasses(): array …
                › {    return $this->reader->getAllClassNames();}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/DataCollector/MappingCollector.php:22 {
                Vich\UploaderBundle\DataCollector\MappingCollector->collect(Request $request, Response $response, ?Throwable $exception = null): void …
                › $mappings = [];$uploadableClasses = $this->metadataReader->getUploadableClasses();foreach ($uploadableClasses as $class) {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/Profiler/Profiler.php:158 {
                Symfony\Component\HttpKernel\Profiler\Profiler->collect(Request $request, Response $response, ?Throwable $exception = null): Profile …
                › foreach ($this->collectors as $collector) {    $collector->collect($request, $response, $exception);}
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/EventListener/ProfilerListener.php:102 {
                Symfony\Component\HttpKernel\EventListener\ProfilerListener->onKernelResponse(ResponseEvent $event): void …
                › try {    if (!$profile = $this->profiler->collect($request, $event->getResponse(), $exception)) {        return;
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:115 {
                Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object $event, string $eventName, EventDispatcherInterface $dispatcher): void …
                › try {    ($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/EventDispatcher.php:206 {
                Symfony\Component\EventDispatcher\EventDispatcher->callListeners(iterable $listeners, string $eventName, object $event): void …
                ›     }    $listener($event, $eventName, $this);}
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/EventDispatcher.php:56 {
                Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object $event, ?string $eventName = null): object …
                › if ($listeners) {    $this->callListeners($listeners, $eventName, $event);}
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:126 {
                Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object $event, ?string $eventName = null): object …
                › try {    $this->dispatcher->dispatch($event, $eventName);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:216 {
                Symfony\Component\HttpKernel\HttpKernel->filterResponse(Response $response, Request $request, int $type): Response …
                › 
                › $this->dispatcher->dispatch($event, KernelEvents::RESPONSE);}
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:267 {
                Symfony\Component\HttpKernel\HttpKernel->handleThrowable(Throwable $e, Request $request, int $type): Response …
                › try {    return $this->filterResponse($response, $request, $type);} catch (\Throwable $e) {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:91 {
                Symfony\Component\HttpKernel\HttpKernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
                › 
                ›     return $response = $this->handleThrowable($e, $request, $type);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/Kernel.php:193 {
                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 {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35 {
                Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run(): int …
                › {    $response = $this->kernel->handle($this->request);}
              /home/testaimp/web/saveurs/www/vendor/autoload_runtime.php:32 {
                require_once …
                ›         ->getRunner($app)        ->run());
              }
              /home/testaimp/web/saveurs/www/public/index.php:5 {
                › 
                › require_once dirname(__DIR__).'/vendor/autoload_runtime.php';arguments: {
                  "/home/testaimp/web/saveurs/www/vendor/autoload_runtime.php"
                }
              }
            }
          }
        ]
        "channel" => "deprecation"
      ]
      [
        "timestamp" => 1773224302
        "timestamp_rfc3339" => "2026-03-11T11:18:22.823+01:00"
        "message" => "User Deprecated: Since vich/uploader-bundle 2.9: The "Vich\UploaderBundle\Mapping\Annotation\Uploadable" class is deprecated, use "Vich\UploaderBundle\Mapping\Attribute\Uploadable" instead."
        "priority" => 200
        "priorityName" => "INFO"
        "context" => [
          "exception" => ErrorException {#1353
            #message: "User Deprecated: Since vich/uploader-bundle 2.9: The "Vich\UploaderBundle\Mapping\Annotation\Uploadable" class is deprecated, use "Vich\UploaderBundle\Mapping\Attribute\Uploadable" instead."
            #code: 0
            #file: "/home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Mapping/Annotation/Uploadable.php"
            #line: 24
            #severity: E_USER_DEPRECATED
            trace: {
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Mapping/Annotation/Uploadable.php:24 {
                Vich\UploaderBundle\Mapping\Annotation\Uploadable->__construct() …
                › {    trigger_deprecation('vich/uploader-bundle', '2.9', 'The "Vich\UploaderBundle\Mapping\Annotation\Uploadable" class is deprecated, use "Vich\UploaderBundle\Mapping\Attribute\Uploadable" instead.');}
              }
              /home/testaimp/web/saveurs/www/src/Entity/Product.php:13 {
                ReflectionAttribute->newInstance(): object …
                › #[ORM\Entity(repositoryClass: ProductRepository::class)]#[Vich\Uploadable] // <--- AJOUT ICIclass Product
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeReader.php:122 {
                Vich\UploaderBundle\Metadata\Driver\AttributeReader->convertToAttributeInstances(array $attributes): array …
                › $attributeName = $attribute->getName();$instance = $attribute->newInstance();}
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeReader.php:15 {
                Vich\UploaderBundle\Metadata\Driver\AttributeReader->getClassAttributes(ReflectionClass $class): array …
                › {    return $this->convertToAttributeInstances($class->getAttributes());}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeReader.php:20 {
                Vich\UploaderBundle\Metadata\Driver\AttributeReader->getClassAttribute(ReflectionClass $class, string $attributeName): AttributeInterface …
                › {    return $this->getClassAttributes($class)[$attributeName] ?? null;}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeDriver.php:107 {
                Vich\UploaderBundle\Metadata\Driver\AttributeDriver->isUploadable(ReflectionClass $class): bool …
                ›     // Fallback to deprecated Annotation namespace    $uploadable = $this->reader->getClassAttribute($class, UploadableAnnotation::class);}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeDriver.php:93 {
                Vich\UploaderBundle\Metadata\Driver\AttributeDriver->getAllClassNames(): array …
                › foreach ($metadata as $classMeta) {    if ($this->isUploadable(new \ReflectionClass($classMeta->getName()))) {        $classes[] = $classMeta->getName();
              }
              /home/testaimp/web/saveurs/www/vendor/jms/metadata/src/Driver/DriverChain.php:57 {
                Metadata\Driver\DriverChain->getAllClassNames(): array …
                › 
                › $driverClasses = $driver->getAllClassNames();if (!empty($driverClasses)) {
              }
              /home/testaimp/web/saveurs/www/vendor/jms/metadata/src/MetadataFactory.php:145 {
                Metadata\MetadataFactory->getAllClassNames(): array …
                › 
                ›     return $this->driver->getAllClassNames();}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/MetadataReader.php:66 {
                Vich\UploaderBundle\Metadata\MetadataReader->getUploadableClasses(): array …
                › {    return $this->reader->getAllClassNames();}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/DataCollector/MappingCollector.php:22 {
                Vich\UploaderBundle\DataCollector\MappingCollector->collect(Request $request, Response $response, ?Throwable $exception = null): void …
                › $mappings = [];$uploadableClasses = $this->metadataReader->getUploadableClasses();foreach ($uploadableClasses as $class) {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/Profiler/Profiler.php:158 {
                Symfony\Component\HttpKernel\Profiler\Profiler->collect(Request $request, Response $response, ?Throwable $exception = null): Profile …
                › foreach ($this->collectors as $collector) {    $collector->collect($request, $response, $exception);}
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/EventListener/ProfilerListener.php:102 {
                Symfony\Component\HttpKernel\EventListener\ProfilerListener->onKernelResponse(ResponseEvent $event): void …
                › try {    if (!$profile = $this->profiler->collect($request, $event->getResponse(), $exception)) {        return;
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:115 {
                Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object $event, string $eventName, EventDispatcherInterface $dispatcher): void …
                › try {    ($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/EventDispatcher.php:206 {
                Symfony\Component\EventDispatcher\EventDispatcher->callListeners(iterable $listeners, string $eventName, object $event): void …
                ›     }    $listener($event, $eventName, $this);}
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/EventDispatcher.php:56 {
                Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object $event, ?string $eventName = null): object …
                › if ($listeners) {    $this->callListeners($listeners, $eventName, $event);}
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:126 {
                Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object $event, ?string $eventName = null): object …
                › try {    $this->dispatcher->dispatch($event, $eventName);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:216 {
                Symfony\Component\HttpKernel\HttpKernel->filterResponse(Response $response, Request $request, int $type): Response …
                › 
                › $this->dispatcher->dispatch($event, KernelEvents::RESPONSE);}
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:267 {
                Symfony\Component\HttpKernel\HttpKernel->handleThrowable(Throwable $e, Request $request, int $type): Response …
                › try {    return $this->filterResponse($response, $request, $type);} catch (\Throwable $e) {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:91 {
                Symfony\Component\HttpKernel\HttpKernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
                › 
                ›     return $response = $this->handleThrowable($e, $request, $type);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/Kernel.php:193 {
                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 {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35 {
                Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run(): int …
                › {    $response = $this->kernel->handle($this->request);}
              /home/testaimp/web/saveurs/www/vendor/autoload_runtime.php:32 {
                require_once …
                ›         ->getRunner($app)        ->run());
              }
              /home/testaimp/web/saveurs/www/public/index.php:5 {
                › 
                › require_once dirname(__DIR__).'/vendor/autoload_runtime.php';arguments: {
                  "/home/testaimp/web/saveurs/www/vendor/autoload_runtime.php"
                }
              }
            }
          }
        ]
        "channel" => "deprecation"
      ]
    ]
    861 => [
      [
        "timestamp" => 1773224302
        "timestamp_rfc3339" => "2026-03-11T11:18:22.821+01:00"
        "message" => "User Deprecated: Since vich/uploader-bundle 2.9: The "Vich\UploaderBundle\Mapping\Annotation\Uploadable" class is deprecated, use "Vich\UploaderBundle\Mapping\Attribute\Uploadable" instead."
        "priority" => 200
        "priorityName" => "INFO"
        "context" => [
          "exception" => ErrorException {#1247
            #message: "User Deprecated: Since vich/uploader-bundle 2.9: The "Vich\UploaderBundle\Mapping\Annotation\Uploadable" class is deprecated, use "Vich\UploaderBundle\Mapping\Attribute\Uploadable" instead."
            #code: 0
            #file: "/home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Mapping/Annotation/Uploadable.php"
            #line: 24
            #severity: E_USER_DEPRECATED
            trace: {
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Mapping/Annotation/Uploadable.php:24 {
                Vich\UploaderBundle\Mapping\Annotation\Uploadable->__construct() …
                › {    trigger_deprecation('vich/uploader-bundle', '2.9', 'The "Vich\UploaderBundle\Mapping\Annotation\Uploadable" class is deprecated, use "Vich\UploaderBundle\Mapping\Attribute\Uploadable" instead.');}
              }
              /home/testaimp/web/saveurs/www/src/Entity/Product.php:13 {
                ReflectionAttribute->newInstance(): object …
                › #[ORM\Entity(repositoryClass: ProductRepository::class)]#[Vich\Uploadable] // <--- AJOUT ICIclass Product
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeReader.php:122 {
                Vich\UploaderBundle\Metadata\Driver\AttributeReader->convertToAttributeInstances(array $attributes): array …
                › $attributeName = $attribute->getName();$instance = $attribute->newInstance();}
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeReader.php:15 {
                Vich\UploaderBundle\Metadata\Driver\AttributeReader->getClassAttributes(ReflectionClass $class): array …
                › {    return $this->convertToAttributeInstances($class->getAttributes());}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeReader.php:20 {
                Vich\UploaderBundle\Metadata\Driver\AttributeReader->getClassAttribute(ReflectionClass $class, string $attributeName): AttributeInterface …
                › {    return $this->getClassAttributes($class)[$attributeName] ?? null;}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeDriver.php:104 {
                Vich\UploaderBundle\Metadata\Driver\AttributeDriver->isUploadable(ReflectionClass $class): bool …
                › // Support both new Attribute\ and deprecated Annotation\ namespaces$uploadable = $this->reader->getClassAttribute($class, Uploadable::class);if (null === $uploadable) {
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeDriver.php:93 {
                Vich\UploaderBundle\Metadata\Driver\AttributeDriver->getAllClassNames(): array …
                › foreach ($metadata as $classMeta) {    if ($this->isUploadable(new \ReflectionClass($classMeta->getName()))) {        $classes[] = $classMeta->getName();
              }
              /home/testaimp/web/saveurs/www/vendor/jms/metadata/src/Driver/DriverChain.php:57 {
                Metadata\Driver\DriverChain->getAllClassNames(): array …
                › 
                › $driverClasses = $driver->getAllClassNames();if (!empty($driverClasses)) {
              }
              /home/testaimp/web/saveurs/www/vendor/jms/metadata/src/MetadataFactory.php:145 {
                Metadata\MetadataFactory->getAllClassNames(): array …
                › 
                ›     return $this->driver->getAllClassNames();}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/MetadataReader.php:66 {
                Vich\UploaderBundle\Metadata\MetadataReader->getUploadableClasses(): array …
                › {    return $this->reader->getAllClassNames();}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/DataCollector/MappingCollector.php:22 {
                Vich\UploaderBundle\DataCollector\MappingCollector->collect(Request $request, Response $response, ?Throwable $exception = null): void …
                › $mappings = [];$uploadableClasses = $this->metadataReader->getUploadableClasses();foreach ($uploadableClasses as $class) {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/Profiler/Profiler.php:158 {
                Symfony\Component\HttpKernel\Profiler\Profiler->collect(Request $request, Response $response, ?Throwable $exception = null): Profile …
                › foreach ($this->collectors as $collector) {    $collector->collect($request, $response, $exception);}
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/EventListener/ProfilerListener.php:102 {
                Symfony\Component\HttpKernel\EventListener\ProfilerListener->onKernelResponse(ResponseEvent $event): void …
                › try {    if (!$profile = $this->profiler->collect($request, $event->getResponse(), $exception)) {        return;
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:115 {
                Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object $event, string $eventName, EventDispatcherInterface $dispatcher): void …
                › try {    ($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/EventDispatcher.php:206 {
                Symfony\Component\EventDispatcher\EventDispatcher->callListeners(iterable $listeners, string $eventName, object $event): void …
                ›     }    $listener($event, $eventName, $this);}
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/EventDispatcher.php:56 {
                Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object $event, ?string $eventName = null): object …
                › if ($listeners) {    $this->callListeners($listeners, $eventName, $event);}
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:126 {
                Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object $event, ?string $eventName = null): object …
                › try {    $this->dispatcher->dispatch($event, $eventName);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:216 {
                Symfony\Component\HttpKernel\HttpKernel->filterResponse(Response $response, Request $request, int $type): Response …
                › 
                › $this->dispatcher->dispatch($event, KernelEvents::RESPONSE);}
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:204 {
                Symfony\Component\HttpKernel\HttpKernel->handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response …
                › 
                ›     return $this->filterResponse($response, $request, $type);}
              }
              /home/testaimp/web/saveurs/www/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) {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/EventListener/ErrorListener.php:99 {
                Symfony\Component\HttpKernel\EventListener\ErrorListener->onKernelException(ExceptionEvent $event): void …
                › try {    $response = $event->getKernel()->handle($request, HttpKernelInterface::SUB_REQUEST, false);} catch (\Exception $e) {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:115 {
                Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object $event, string $eventName, EventDispatcherInterface $dispatcher): void …
                › try {    ($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/EventDispatcher.php:206 {
                Symfony\Component\EventDispatcher\EventDispatcher->callListeners(iterable $listeners, string $eventName, object $event): void …
                ›     }    $listener($event, $eventName, $this);}
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/EventDispatcher.php:56 {
                Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object $event, ?string $eventName = null): object …
                › if ($listeners) {    $this->callListeners($listeners, $eventName, $event);}
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:126 {
                Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object $event, ?string $eventName = null): object …
                › try {    $this->dispatcher->dispatch($event, $eventName);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:241 {
                Symfony\Component\HttpKernel\HttpKernel->handleThrowable(Throwable $e, Request $request, int $type): Response …
                › $event = new ExceptionEvent($this, $request, $type, $e, isKernelTerminating: $this->terminating);$this->dispatcher->dispatch($event, KernelEvents::EXCEPTION);}
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:91 {
                Symfony\Component\HttpKernel\HttpKernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
                › 
                ›     return $response = $this->handleThrowable($e, $request, $type);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/Kernel.php:193 {
                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 {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35 {
                Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run(): int …
                › {    $response = $this->kernel->handle($this->request);}
              /home/testaimp/web/saveurs/www/vendor/autoload_runtime.php:32 {
                require_once …
                ›         ->getRunner($app)        ->run());
              }
              /home/testaimp/web/saveurs/www/public/index.php:5 {
                › 
                › require_once dirname(__DIR__).'/vendor/autoload_runtime.php';arguments: {
                  "/home/testaimp/web/saveurs/www/vendor/autoload_runtime.php"
                }
              }
            }
          }
        ]
        "channel" => "deprecation"
      ]
      [
        "timestamp" => 1773224302
        "timestamp_rfc3339" => "2026-03-11T11:18:22.821+01:00"
        "message" => "User Deprecated: Since vich/uploader-bundle 2.9: The "Vich\UploaderBundle\Mapping\Annotation\Uploadable" class is deprecated, use "Vich\UploaderBundle\Mapping\Attribute\Uploadable" instead."
        "priority" => 200
        "priorityName" => "INFO"
        "context" => [
          "exception" => ErrorException {#1248
            #message: "User Deprecated: Since vich/uploader-bundle 2.9: The "Vich\UploaderBundle\Mapping\Annotation\Uploadable" class is deprecated, use "Vich\UploaderBundle\Mapping\Attribute\Uploadable" instead."
            #code: 0
            #file: "/home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Mapping/Annotation/Uploadable.php"
            #line: 24
            #severity: E_USER_DEPRECATED
            trace: {
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Mapping/Annotation/Uploadable.php:24 {
                Vich\UploaderBundle\Mapping\Annotation\Uploadable->__construct() …
                › {    trigger_deprecation('vich/uploader-bundle', '2.9', 'The "Vich\UploaderBundle\Mapping\Annotation\Uploadable" class is deprecated, use "Vich\UploaderBundle\Mapping\Attribute\Uploadable" instead.');}
              }
              /home/testaimp/web/saveurs/www/src/Entity/Product.php:13 {
                ReflectionAttribute->newInstance(): object …
                › #[ORM\Entity(repositoryClass: ProductRepository::class)]#[Vich\Uploadable] // <--- AJOUT ICIclass Product
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeReader.php:122 {
                Vich\UploaderBundle\Metadata\Driver\AttributeReader->convertToAttributeInstances(array $attributes): array …
                › $attributeName = $attribute->getName();$instance = $attribute->newInstance();}
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeReader.php:15 {
                Vich\UploaderBundle\Metadata\Driver\AttributeReader->getClassAttributes(ReflectionClass $class): array …
                › {    return $this->convertToAttributeInstances($class->getAttributes());}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeReader.php:20 {
                Vich\UploaderBundle\Metadata\Driver\AttributeReader->getClassAttribute(ReflectionClass $class, string $attributeName): AttributeInterface …
                › {    return $this->getClassAttributes($class)[$attributeName] ?? null;}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeDriver.php:107 {
                Vich\UploaderBundle\Metadata\Driver\AttributeDriver->isUploadable(ReflectionClass $class): bool …
                ›     // Fallback to deprecated Annotation namespace    $uploadable = $this->reader->getClassAttribute($class, UploadableAnnotation::class);}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/Driver/AttributeDriver.php:93 {
                Vich\UploaderBundle\Metadata\Driver\AttributeDriver->getAllClassNames(): array …
                › foreach ($metadata as $classMeta) {    if ($this->isUploadable(new \ReflectionClass($classMeta->getName()))) {        $classes[] = $classMeta->getName();
              }
              /home/testaimp/web/saveurs/www/vendor/jms/metadata/src/Driver/DriverChain.php:57 {
                Metadata\Driver\DriverChain->getAllClassNames(): array …
                › 
                › $driverClasses = $driver->getAllClassNames();if (!empty($driverClasses)) {
              }
              /home/testaimp/web/saveurs/www/vendor/jms/metadata/src/MetadataFactory.php:145 {
                Metadata\MetadataFactory->getAllClassNames(): array …
                › 
                ›     return $this->driver->getAllClassNames();}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/Metadata/MetadataReader.php:66 {
                Vich\UploaderBundle\Metadata\MetadataReader->getUploadableClasses(): array …
                › {    return $this->reader->getAllClassNames();}
              }
              /home/testaimp/web/saveurs/www/vendor/vich/uploader-bundle/src/DataCollector/MappingCollector.php:22 {
                Vich\UploaderBundle\DataCollector\MappingCollector->collect(Request $request, Response $response, ?Throwable $exception = null): void …
                › $mappings = [];$uploadableClasses = $this->metadataReader->getUploadableClasses();foreach ($uploadableClasses as $class) {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/Profiler/Profiler.php:158 {
                Symfony\Component\HttpKernel\Profiler\Profiler->collect(Request $request, Response $response, ?Throwable $exception = null): Profile …
                › foreach ($this->collectors as $collector) {    $collector->collect($request, $response, $exception);}
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/EventListener/ProfilerListener.php:102 {
                Symfony\Component\HttpKernel\EventListener\ProfilerListener->onKernelResponse(ResponseEvent $event): void …
                › try {    if (!$profile = $this->profiler->collect($request, $event->getResponse(), $exception)) {        return;
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:115 {
                Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object $event, string $eventName, EventDispatcherInterface $dispatcher): void …
                › try {    ($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/EventDispatcher.php:206 {
                Symfony\Component\EventDispatcher\EventDispatcher->callListeners(iterable $listeners, string $eventName, object $event): void …
                ›     }    $listener($event, $eventName, $this);}
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/EventDispatcher.php:56 {
                Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object $event, ?string $eventName = null): object …
                › if ($listeners) {    $this->callListeners($listeners, $eventName, $event);}
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:126 {
                Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object $event, ?string $eventName = null): object …
                › try {    $this->dispatcher->dispatch($event, $eventName);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:216 {
                Symfony\Component\HttpKernel\HttpKernel->filterResponse(Response $response, Request $request, int $type): Response …
                › 
                › $this->dispatcher->dispatch($event, KernelEvents::RESPONSE);}
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:204 {
                Symfony\Component\HttpKernel\HttpKernel->handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response …
                › 
                ›     return $this->filterResponse($response, $request, $type);}
              }
              /home/testaimp/web/saveurs/www/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) {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/EventListener/ErrorListener.php:99 {
                Symfony\Component\HttpKernel\EventListener\ErrorListener->onKernelException(ExceptionEvent $event): void …
                › try {    $response = $event->getKernel()->handle($request, HttpKernelInterface::SUB_REQUEST, false);} catch (\Exception $e) {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:115 {
                Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object $event, string $eventName, EventDispatcherInterface $dispatcher): void …
                › try {    ($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/EventDispatcher.php:206 {
                Symfony\Component\EventDispatcher\EventDispatcher->callListeners(iterable $listeners, string $eventName, object $event): void …
                ›     }    $listener($event, $eventName, $this);}
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/EventDispatcher.php:56 {
                Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object $event, ?string $eventName = null): object …
                › if ($listeners) {    $this->callListeners($listeners, $eventName, $event);}
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:126 {
                Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object $event, ?string $eventName = null): object …
                › try {    $this->dispatcher->dispatch($event, $eventName);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:241 {
                Symfony\Component\HttpKernel\HttpKernel->handleThrowable(Throwable $e, Request $request, int $type): Response …
                › $event = new ExceptionEvent($this, $request, $type, $e, isKernelTerminating: $this->terminating);$this->dispatcher->dispatch($event, KernelEvents::EXCEPTION);}
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/HttpKernel.php:91 {
                Symfony\Component\HttpKernel\HttpKernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
                › 
                ›     return $response = $this->handleThrowable($e, $request, $type);} finally {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/http-kernel/Kernel.php:193 {
                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 {
              }
              /home/testaimp/web/saveurs/www/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35 {
                Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run(): int …
                › {    $response = $this->kernel->handle($this->request);}
              /home/testaimp/web/saveurs/www/vendor/autoload_runtime.php:32 {
                require_once …
                ›         ->getRunner($app)        ->run());
              }
              /home/testaimp/web/saveurs/www/public/index.php:5 {
                › 
                › require_once dirname(__DIR__).'/vendor/autoload_runtime.php';arguments: {
                  "/home/testaimp/web/saveurs/www/vendor/autoload_runtime.php"
                }
              }
            }
          }
        ]
        "channel" => "deprecation"
      ]
    ]
  ]
  -errorCount: [
    2 => 1
    861 => 0
  ]
  -requestStack: Symfony\Component\HttpKernel\Debug\VirtualRequestStack {#65 …}
}

Request Headers

Header Value
accept
"application/json, text/plain, */*"
accept-encoding
"gzip, deflate, br, zstd"
accept-language
"fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7"
cookie
"main_deauth_profile_token=732259"
host
"saveurs.testaimpros.com"
priority
"u=1, i"
referer
"https://saveurs.testaimpros.com/"
sec-ch-ua
""Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145""
sec-ch-ua-mobile
"?0"
sec-ch-ua-platform
""Windows""
sec-fetch-dest
"empty"
sec-fetch-mode
"cors"
sec-fetch-site
"same-origin"
user-agent
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36"
x-php-ob-level
"0"

Request Content

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

Response

Response Headers

Header Value
cache-control
"no-cache, private"
content-type
"application/json"
date
"Wed, 11 Mar 2026 10:18:22 GMT"
vary
"Accept"
x-debug-exception
"An%20exception%20occurred%20in%20the%20driver%3A%20SQLSTATE%5BHY000%5D%20%5B2002%5D%20Connection%20refused"
x-debug-exception-file
"%2Fhome%2Ftestaimp%2Fweb%2Fsaveurs%2Fwww%2Fvendor%2Fdoctrine%2Fdbal%2Fsrc%2FDriver%2FAPI%2FMySQL%2FExceptionConverter.php:91"
x-debug-token
"f0c33d"

Cookies

Request Cookies

Key Value
main_deauth_profile_token
"732259"

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
"fb77288bf54d5c0c706958d52c1a91be"
DATABASE_URL
"mysql://saveurs_users:saveurs_password@127.0.0.1:3306/saveurs?serverVersion=11.4.9-MariaDB&charset=utf8mb4"
DEFAULT_URI
"http://localhost"
MAILER_DSN
"null://null"
MESSENGER_TRANSPORT_DSN
"doctrine://default?auto_setup=0"

Defined as regular env variables

Key Value
APP_DEBUG
"1"
APP_PROJECT_DIR
"/home/testaimp/web/saveurs/www"
APP_RUNTIME
"Symfony\Component\Runtime\SymfonyRuntime"
APP_RUNTIME_OPTIONS
[
  "project_dir" => "/home/testaimp/web/saveurs/www"
]
CONTEXT_DOCUMENT_ROOT
"/home/testaimp/web/saveurs/www/public"
CONTEXT_PREFIX
""
DOCUMENT_ROOT
"/home/testaimp/web/saveurs/www/public"
FCGI_ROLE
"RESPONDER"
GATEWAY_INTERFACE
"CGI/1.1"
H2PUSH
"off"
H2_PUSH
"off"
H2_PUSHED
""
H2_PUSHED_ON
""
H2_STREAM_ID
"27"
H2_STREAM_TAG
"2465249-10-27"
HOME
"/home/testaimp"
HTTP2
"on"
HTTPS
"on"
HTTP_ACCEPT
"application/json, text/plain, */*"
HTTP_ACCEPT_ENCODING
"gzip, deflate, br, zstd"
HTTP_ACCEPT_LANGUAGE
"fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7"
HTTP_COOKIE
"main_deauth_profile_token=732259"
HTTP_HOST
"saveurs.testaimpros.com"
HTTP_PRIORITY
"u=1, i"
HTTP_REFERER
"https://saveurs.testaimpros.com/"
HTTP_SEC_CH_UA
""Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145""
HTTP_SEC_CH_UA_MOBILE
"?0"
HTTP_SEC_CH_UA_PLATFORM
""Windows""
HTTP_SEC_FETCH_DEST
"empty"
HTTP_SEC_FETCH_MODE
"cors"
HTTP_SEC_FETCH_SITE
"same-origin"
HTTP_USER_AGENT
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36"
INVOCATION_ID
"f239f4dc7b184ab2b614a363a3d92942"
JOURNAL_STREAM
"8:299617117"
LANG
"en_US.UTF-8"
LANGUAGE
"en_US:en"
MMDB_ADDR
"88.173.59.86"
MMDB_INFO
"result found"
MM_ASN
"12322"
MM_ASN_ORG
"Free SAS"
MM_CITY_NAME
"Toulouse"
MM_COUNTRY_CODE
"FR"
MM_COUNTRY_NAME
"France"
NOTIFY_SOCKET
"/run/systemd/notify"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
PHP_SELF
"/index.php"
PIDFILE
"/usr/local/php-8.3-fpm/var/run/php-fpm.pid"
QUERY_STRING
""
REMOTE_ADDR
"88.173.59.86"
REMOTE_PORT
"15368"
REQUEST_METHOD
"GET"
REQUEST_SCHEME
"https"
REQUEST_TIME
1773224302
REQUEST_TIME_FLOAT
1773224302.7516
REQUEST_URI
"/api/products"
SCRIPT_FILENAME
"/home/testaimp/web/saveurs/www/public/index.php"
SCRIPT_NAME
"/index.php"
SERVER_ADDR
"91.204.116.181"
SERVER_ADMIN
"postmaster@vds207.hiwit.net"
SERVER_NAME
"saveurs.testaimpros.com"
SERVER_PORT
"443"
SERVER_PROTOCOL
"HTTP/2.0"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache"
SSL_TLS_SNI
"saveurs.testaimpros.com"
SYMFONY_DOTENV_PATH
"/home/testaimp/web/saveurs/www/.env"
SYMFONY_DOTENV_VARS
"APP_ENV,APP_SECRET,DEFAULT_URI,DATABASE_URL,MESSENGER_TRANSPORT_DSN,MAILER_DSN"
SYSTEMD_EXEC_PID
"1167416"
USER
"testaimp"
proxy-nokeepalive
"1"

Parent Request

Return to parent request (token = aa6bb2)

Key Value
_controller
"App\Controller\Api\ProductController::index"
_firewall_context
"security.firewall.map.context.main"
_remove_csp_headers
true
_route
"api_products"
_route_params
[]
_security_authenticators
[]
_security_firewall_run
"_security_main"
_security_skipped_authenticators
[]
_stopwatch_token
"fe6203"