League\Flysystem\UnableToReadFile {#23690
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#23728
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#23621
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#23625
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:25 GMT"
3 => "x-amz-id-2: txgfb0c823f903e4a428582-006931a76d"
4 => "x-amz-request-id: txgfb0c823f903e4a428582-006931a76d"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861804.9604
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png"
pause_handler: Closure(float $duration) {#17808
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#23620 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775576
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.077167
namelookup_time: 0.008471
connect_time: 0.009491
pretransfer_time: 0.064032
size_upload: 0.0
size_download: 305.0
speed_download: 3952.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.075627
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 63384
connect_time_us: 9491
namelookup_time_us: 8471
pretransfer_time_us: 64032
redirect_time_us: 0
starttransfer_time_us: 75627
posttransfer_time_us: 64313
total_time_us: 77167
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Too old connection (2137 seconds idle), disconnect it\n
* Connection 10 seems to be dead\n
* shutting down connection #10\n
* Hostname in DNS cache was stale, zapped\n
* Host s3.fr-par.scw.cloud:443 was resolved.\n
* IPv6: 2001:bc8:10::c, 2001:bc8:10::d, 2001:bc8:10::f\n
* IPv4: 51.159.62.19, 51.159.62.20, 51.159.62.18\n
* Trying [2001:bc8:10::c]:443...\n
* Immediate connect fail for 2001:bc8:10::c: Cannot assign requested address\n
* Trying [2001:bc8:10::d]:443...\n
* Immediate connect fail for 2001:bc8:10::d: Cannot assign requested address\n
* Trying [2001:bc8:10::f]:443...\n
* Immediate connect fail for 2001:bc8:10::f: Cannot assign requested address\n
* Trying 51.159.62.19:443...\n
* SSL reusing session with ALPN 'h2'\n
* ALPN: curl offers h2,http/1.1\n
* CAfile: /etc/ssl/certs/ca-certificates.crt\n
* CApath: /etc/ssl/certs\n
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / x25519 / RSASSA-PSS\n
* ALPN: server accepted h2\n
* Server certificate:\n
* subject: CN=s3.fr-par.scw.cloud\n
* start date: Oct 29 20:59:07 2025 GMT\n
* expire date: Jan 27 20:59:06 2026 GMT\n
* subjectAltName: host "s3.fr-par.scw.cloud" matched cert's "s3.fr-par.scw.cloud"\n
* issuer: C=US; O=Let's Encrypt; CN=R12\n
* SSL certificate verify ok.\n
* Certificate level 0: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption\n
* Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption\n
* Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption\n
* Connected to s3.fr-par.scw.cloud (51.159.62.19) port 443\n
* using HTTP/2\n
* [HTTP/2] [1] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png\n
* [HTTP/2] [1] [:method: GET]\n
* [HTTP/2] [1] [:scheme: https]\n
* [HTTP/2] [1] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [1] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png]\n
* [HTTP/2] [1] [content-type: application/xml]\n
* [HTTP/2] [1] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [1] [x-amz-date: 20251204T152324Z]\n
* [HTTP/2] [1] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=b1fb233454996e6465a56481807cb86174f77f0ebedf5367ffe0f98b9d7c2909]\n
* [HTTP/2] [1] [content-length: 0]\n
* [HTTP/2] [1] [accept: */*]\n
* [HTTP/2] [1] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [1] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152324Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=b1fb233454996e6465a56481807cb86174f77f0ebedf5367ffe0f98b9d7c2909\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:25 GMT\r\n
< x-amz-id-2: txgfb0c823f903e4a428582-006931a76d\r\n
< x-amz-request-id: txgfb0c823f903e4a428582-006931a76d\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @900
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#23520
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#23621
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#21480
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#23620
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#23558
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:25 GMT"
3 => "x-amz-id-2: txg0b06990551624765b2bf-006931a76d"
4 => "x-amz-request-id: txg0b06990551624765b2bf-006931a76d"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861805.1179
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png"
pause_handler: Closure(float $duration) {#26122
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#17808 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775566
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.115278
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000329
size_upload: 0.0
size_download: 305.0
speed_download: 2645.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.115078
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 329
redirect_time_us: 0
starttransfer_time_us: 115078
posttransfer_time_us: 351
total_time_us: 115278
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [3] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png\n
* [HTTP/2] [3] [:method: GET]\n
* [HTTP/2] [3] [:scheme: https]\n
* [HTTP/2] [3] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [3] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png]\n
* [HTTP/2] [3] [content-type: application/xml]\n
* [HTTP/2] [3] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [3] [x-amz-date: 20251204T152325Z]\n
* [HTTP/2] [3] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=e86935f2aeacd686733f287ea7c85ad1af41f403453223852974f65bfb234ed5]\n
* [HTTP/2] [3] [content-length: 0]\n
* [HTTP/2] [3] [accept: */*]\n
* [HTTP/2] [3] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [3] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152325Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=e86935f2aeacd686733f287ea7c85ad1af41f403453223852974f65bfb234ed5\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:25 GMT\r\n
< x-amz-id-2: txg0b06990551624765b2bf-006931a76d\r\n
< x-amz-request-id: txg0b06990551624765b2bf-006931a76d\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @930
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#18683
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/1f499.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#23620
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#23560
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#17808
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#21449
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:25 GMT"
3 => "x-amz-id-2: txg28a092fcded14b4ab136-006931a76d"
4 => "x-amz-request-id: txg28a092fcded14b4ab136-006931a76d"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861805.2621
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png"
pause_handler: Closure(float $duration) {#24454
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#26122 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775563
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.022044
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000322
size_upload: 0.0
size_download: 305.0
speed_download: 13835.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.02186
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 322
redirect_time_us: 0
starttransfer_time_us: 21860
posttransfer_time_us: 343
total_time_us: 22044
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [5] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png\n
* [HTTP/2] [5] [:method: GET]\n
* [HTTP/2] [5] [:scheme: https]\n
* [HTTP/2] [5] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [5] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png]\n
* [HTTP/2] [5] [content-type: application/xml]\n
* [HTTP/2] [5] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [5] [x-amz-date: 20251204T152325Z]\n
* [HTTP/2] [5] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=d7577856163d5cf3b2abebeeab89645997ba9649863eadd9ce518cf1e6ae4fc1]\n
* [HTTP/2] [5] [content-length: 0]\n
* [HTTP/2] [5] [accept: */*]\n
* [HTTP/2] [5] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [5] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152325Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=d7577856163d5cf3b2abebeeab89645997ba9649863eadd9ce518cf1e6ae4fc1\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:25 GMT\r\n
< x-amz-id-2: txg28a092fcded14b4ab136-006931a76d\r\n
< x-amz-request-id: txg28a092fcded14b4ab136-006931a76d\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @935
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#2461
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#17808
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#23520
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#26122
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#22922
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:25 GMT"
3 => "x-amz-id-2: txg9e6c9e896df74532ac7c-006931a76d"
4 => "x-amz-request-id: txg9e6c9e896df74532ac7c-006931a76d"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861805.3044
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
pause_handler: Closure(float $duration) {#3404
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#24454 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775560
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.161332
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.00034
size_upload: 0.0
size_download: 305.0
speed_download: 1890.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.161116
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 340
redirect_time_us: 0
starttransfer_time_us: 161116
posttransfer_time_us: 363
total_time_us: 161332
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [7] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png\n
* [HTTP/2] [7] [:method: GET]\n
* [HTTP/2] [7] [:scheme: https]\n
* [HTTP/2] [7] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [7] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png]\n
* [HTTP/2] [7] [content-type: application/xml]\n
* [HTTP/2] [7] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [7] [x-amz-date: 20251204T152325Z]\n
* [HTTP/2] [7] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=658ef547edde79ee759ba3473642dc1346b36937f32e7766e4ea599418180219]\n
* [HTTP/2] [7] [content-length: 0]\n
* [HTTP/2] [7] [accept: */*]\n
* [HTTP/2] [7] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [7] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152325Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=658ef547edde79ee759ba3473642dc1346b36937f32e7766e4ea599418180219\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:25 GMT\r\n
< x-amz-id-2: txg9e6c9e896df74532ac7c-006931a76d\r\n
< x-amz-request-id: txg9e6c9e896df74532ac7c-006931a76d\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @940
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#18302
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#26122
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#18683
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#24454
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#22869
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:25 GMT"
3 => "x-amz-id-2: txg3e48a80580574494b82b-006931a76d"
4 => "x-amz-request-id: txg3e48a80580574494b82b-006931a76d"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861805.4899
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
pause_handler: Closure(float $duration) {#23930
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#3404 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775557
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.144755
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000409
size_upload: 0.0
size_download: 305.0
speed_download: 2107.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.144591
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 409
redirect_time_us: 0
starttransfer_time_us: 144591
posttransfer_time_us: 437
total_time_us: 144755
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [9] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png\n
* [HTTP/2] [9] [:method: GET]\n
* [HTTP/2] [9] [:scheme: https]\n
* [HTTP/2] [9] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [9] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png]\n
* [HTTP/2] [9] [content-type: application/xml]\n
* [HTTP/2] [9] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [9] [x-amz-date: 20251204T152325Z]\n
* [HTTP/2] [9] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=658ef547edde79ee759ba3473642dc1346b36937f32e7766e4ea599418180219]\n
* [HTTP/2] [9] [content-length: 0]\n
* [HTTP/2] [9] [accept: */*]\n
* [HTTP/2] [9] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [9] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152325Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=658ef547edde79ee759ba3473642dc1346b36937f32e7766e4ea599418180219\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:25 GMT\r\n
< x-amz-id-2: txg3e48a80580574494b82b-006931a76d\r\n
< x-amz-request-id: txg3e48a80580574494b82b-006931a76d\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @945
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#23450
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#24454
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#2461
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#3404
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#8613
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:25 GMT"
3 => "x-amz-id-2: txgc21434e7742245249c43-006931a76d"
4 => "x-amz-request-id: txgc21434e7742245249c43-006931a76d"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861805.657
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
pause_handler: Closure(float $duration) {#17933
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#23930 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775554
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.126285
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000367
size_upload: 0.0
size_download: 305.0
speed_download: 2415.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.126144
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 367
redirect_time_us: 0
starttransfer_time_us: 126144
posttransfer_time_us: 386
total_time_us: 126285
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [11] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png\n
* [HTTP/2] [11] [:method: GET]\n
* [HTTP/2] [11] [:scheme: https]\n
* [HTTP/2] [11] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [11] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png]\n
* [HTTP/2] [11] [content-type: application/xml]\n
* [HTTP/2] [11] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [11] [x-amz-date: 20251204T152325Z]\n
* [HTTP/2] [11] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=658ef547edde79ee759ba3473642dc1346b36937f32e7766e4ea599418180219]\n
* [HTTP/2] [11] [content-length: 0]\n
* [HTTP/2] [11] [accept: */*]\n
* [HTTP/2] [11] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [11] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152325Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=658ef547edde79ee759ba3473642dc1346b36937f32e7766e4ea599418180219\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:25 GMT\r\n
< x-amz-id-2: txgc21434e7742245249c43-006931a76d\r\n
< x-amz-request-id: txgc21434e7742245249c43-006931a76d\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @950
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#24699
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#3404
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#18302
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#23930
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#20915
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:25 GMT"
3 => "x-amz-id-2: txga1610711103449eeaa2a-006931a76d"
4 => "x-amz-request-id: txga1610711103449eeaa2a-006931a76d"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861805.8022
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
pause_handler: Closure(float $duration) {#6980
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#17933 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775551
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.152154
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000332
size_upload: 0.0
size_download: 305.0
speed_download: 2004.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.152007
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 332
redirect_time_us: 0
starttransfer_time_us: 152007
posttransfer_time_us: 355
total_time_us: 152154
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [13] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png\n
* [HTTP/2] [13] [:method: GET]\n
* [HTTP/2] [13] [:scheme: https]\n
* [HTTP/2] [13] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [13] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png]\n
* [HTTP/2] [13] [content-type: application/xml]\n
* [HTTP/2] [13] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [13] [x-amz-date: 20251204T152325Z]\n
* [HTTP/2] [13] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=658ef547edde79ee759ba3473642dc1346b36937f32e7766e4ea599418180219]\n
* [HTTP/2] [13] [content-length: 0]\n
* [HTTP/2] [13] [accept: */*]\n
* [HTTP/2] [13] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [13] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152325Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=658ef547edde79ee759ba3473642dc1346b36937f32e7766e4ea599418180219\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:25 GMT\r\n
< x-amz-id-2: txga1610711103449eeaa2a-006931a76d\r\n
< x-amz-request-id: txga1610711103449eeaa2a-006931a76d\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @955
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#23808
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#23930
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#23450
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#17933
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#23661
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:25 GMT"
3 => "x-amz-id-2: txg731825aa3d89451cabf4-006931a76d"
4 => "x-amz-request-id: txg731825aa3d89451cabf4-006931a76d"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861805.9687
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
pause_handler: Closure(float $duration) {#25077
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#6980 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775548
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.018449
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000288
size_upload: 0.0
size_download: 305.0
speed_download: 16532.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.018262
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 288
redirect_time_us: 0
starttransfer_time_us: 18262
posttransfer_time_us: 307
total_time_us: 18449
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [15] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png\n
* [HTTP/2] [15] [:method: GET]\n
* [HTTP/2] [15] [:scheme: https]\n
* [HTTP/2] [15] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [15] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png]\n
* [HTTP/2] [15] [content-type: application/xml]\n
* [HTTP/2] [15] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [15] [x-amz-date: 20251204T152325Z]\n
* [HTTP/2] [15] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=658ef547edde79ee759ba3473642dc1346b36937f32e7766e4ea599418180219]\n
* [HTTP/2] [15] [content-length: 0]\n
* [HTTP/2] [15] [accept: */*]\n
* [HTTP/2] [15] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [15] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152325Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=658ef547edde79ee759ba3473642dc1346b36937f32e7766e4ea599418180219\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:25 GMT\r\n
< x-amz-id-2: txg731825aa3d89451cabf4-006931a76d\r\n
< x-amz-request-id: txg731825aa3d89451cabf4-006931a76d\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @960
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#3431
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#17933
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#24699
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#6980
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#24829
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:26 GMT"
3 => "x-amz-id-2: txgb204ab61ec874cff846a-006931a76e"
4 => "x-amz-request-id: txgb204ab61ec874cff846a-006931a76e"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861806.0003
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
pause_handler: Closure(float $duration) {#23287
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#25077 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775545
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.2354
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000281
size_upload: 0.0
size_download: 305.0
speed_download: 1295.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.234571
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 281
redirect_time_us: 0
starttransfer_time_us: 234571
posttransfer_time_us: 298
total_time_us: 235400
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [17] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png\n
* [HTTP/2] [17] [:method: GET]\n
* [HTTP/2] [17] [:scheme: https]\n
* [HTTP/2] [17] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [17] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png]\n
* [HTTP/2] [17] [content-type: application/xml]\n
* [HTTP/2] [17] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [17] [x-amz-date: 20251204T152325Z]\n
* [HTTP/2] [17] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=658ef547edde79ee759ba3473642dc1346b36937f32e7766e4ea599418180219]\n
* [HTTP/2] [17] [content-length: 0]\n
* [HTTP/2] [17] [accept: */*]\n
* [HTTP/2] [17] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [17] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152325Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=658ef547edde79ee759ba3473642dc1346b36937f32e7766e4ea599418180219\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:26 GMT\r\n
< x-amz-id-2: txgb204ab61ec874cff846a-006931a76e\r\n
< x-amz-request-id: txgb204ab61ec874cff846a-006931a76e\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @965
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#3414
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#6980
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#23808
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#25077
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#23550
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:26 GMT"
3 => "x-amz-id-2: txg7a6ab1b9c6fd4527a5c7-006931a76e"
4 => "x-amz-request-id: txg7a6ab1b9c6fd4527a5c7-006931a76e"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861806.2582
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
pause_handler: Closure(float $duration) {#25047
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#23287 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775542
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.01816
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000691
size_upload: 0.0
size_download: 305.0
speed_download: 16795.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.017937
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 691
redirect_time_us: 0
starttransfer_time_us: 17937
posttransfer_time_us: 715
total_time_us: 18160
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [19] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png\n
* [HTTP/2] [19] [:method: GET]\n
* [HTTP/2] [19] [:scheme: https]\n
* [HTTP/2] [19] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [19] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png]\n
* [HTTP/2] [19] [content-type: application/xml]\n
* [HTTP/2] [19] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [19] [x-amz-date: 20251204T152326Z]\n
* [HTTP/2] [19] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=cc5a72eecc7629886d4e3b468b3b59e4d2156e9a660d789f996492706a6eb9ce]\n
* [HTTP/2] [19] [content-length: 0]\n
* [HTTP/2] [19] [accept: */*]\n
* [HTTP/2] [19] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [19] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152326Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=cc5a72eecc7629886d4e3b468b3b59e4d2156e9a660d789f996492706a6eb9ce\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:26 GMT\r\n
< x-amz-id-2: txg7a6ab1b9c6fd4527a5c7-006931a76e\r\n
< x-amz-request-id: txg7a6ab1b9c6fd4527a5c7-006931a76e\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @970
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#24716
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#25077
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#3431
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#23287
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#17018
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:26 GMT"
3 => "x-amz-id-2: txg077fa6271c4248a99948-006931a76e"
4 => "x-amz-request-id: txg077fa6271c4248a99948-006931a76e"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861806.293
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
pause_handler: Closure(float $duration) {#20626
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#25047 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775539
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.131731
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000476
size_upload: 0.0
size_download: 305.0
speed_download: 2315.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.131303
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 476
redirect_time_us: 0
starttransfer_time_us: 131303
posttransfer_time_us: 507
total_time_us: 131731
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [21] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png\n
* [HTTP/2] [21] [:method: GET]\n
* [HTTP/2] [21] [:scheme: https]\n
* [HTTP/2] [21] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [21] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png]\n
* [HTTP/2] [21] [content-type: application/xml]\n
* [HTTP/2] [21] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [21] [x-amz-date: 20251204T152326Z]\n
* [HTTP/2] [21] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=cc5a72eecc7629886d4e3b468b3b59e4d2156e9a660d789f996492706a6eb9ce]\n
* [HTTP/2] [21] [content-length: 0]\n
* [HTTP/2] [21] [accept: */*]\n
* [HTTP/2] [21] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [21] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152326Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=cc5a72eecc7629886d4e3b468b3b59e4d2156e9a660d789f996492706a6eb9ce\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:26 GMT\r\n
< x-amz-id-2: txg077fa6271c4248a99948-006931a76e\r\n
< x-amz-request-id: txg077fa6271c4248a99948-006931a76e\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @975
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#18877
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t71/1/16/1f339.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#23287
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#3414
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#25047
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#23608
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:26 GMT"
3 => "x-amz-id-2: txgeea8c8e530464e80ab30-006931a76e"
4 => "x-amz-request-id: txgeea8c8e530464e80ab30-006931a76e"
5 => "content-length: 304"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861806.4425
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
pause_handler: Closure(float $duration) {#25239
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#20626 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775536
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
content_type: "application/xml"
header_size: 206
request_size: 598
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.013897
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000333
size_upload: 0.0
size_download: 304.0
speed_download: 21875.0
speed_upload: 0.0
download_content_length: 304.0
upload_content_length: 0.0
starttransfer_time: 0.013717
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 333
redirect_time_us: 0
starttransfer_time_us: 13717
posttransfer_time_us: 355
total_time_us: 13897
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [23] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png\n
* [HTTP/2] [23] [:method: GET]\n
* [HTTP/2] [23] [:scheme: https]\n
* [HTTP/2] [23] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [23] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png]\n
* [HTTP/2] [23] [content-type: application/xml]\n
* [HTTP/2] [23] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [23] [x-amz-date: 20251204T152326Z]\n
* [HTTP/2] [23] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=4ba42d713f30deb4876aa38a1351f3c3dda2f10abf43bb7a30227b081115ffae]\n
* [HTTP/2] [23] [content-length: 0]\n
* [HTTP/2] [23] [accept: */*]\n
* [HTTP/2] [23] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [23] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152326Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=4ba42d713f30deb4876aa38a1351f3c3dda2f10abf43bb7a30227b081115ffae\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:26 GMT\r\n
< x-amz-id-2: txgeea8c8e530464e80ab30-006931a76e\r\n
< x-amz-request-id: txgeea8c8e530464e80ab30-006931a76e\r\n
< content-length: 304\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @980
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 304
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#16868
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#25047
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#24716
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#20626
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#18417
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:26 GMT"
3 => "x-amz-id-2: txga2b50cae5c7a4de1826f-006931a76e"
4 => "x-amz-request-id: txga2b50cae5c7a4de1826f-006931a76e"
5 => "content-length: 304"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861806.4685
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
pause_handler: Closure(float $duration) {#12861
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#25239 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775533
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
content_type: "application/xml"
header_size: 206
request_size: 598
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.224467
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000325
size_upload: 0.0
size_download: 304.0
speed_download: 1354.0
speed_upload: 0.0
download_content_length: 304.0
upload_content_length: 0.0
starttransfer_time: 0.224194
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 325
redirect_time_us: 0
starttransfer_time_us: 224194
posttransfer_time_us: 349
total_time_us: 224467
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [25] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png\n
* [HTTP/2] [25] [:method: GET]\n
* [HTTP/2] [25] [:scheme: https]\n
* [HTTP/2] [25] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [25] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png]\n
* [HTTP/2] [25] [content-type: application/xml]\n
* [HTTP/2] [25] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [25] [x-amz-date: 20251204T152326Z]\n
* [HTTP/2] [25] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=4ba42d713f30deb4876aa38a1351f3c3dda2f10abf43bb7a30227b081115ffae]\n
* [HTTP/2] [25] [content-length: 0]\n
* [HTTP/2] [25] [accept: */*]\n
* [HTTP/2] [25] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [25] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152326Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=4ba42d713f30deb4876aa38a1351f3c3dda2f10abf43bb7a30227b081115ffae\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:26 GMT\r\n
< x-amz-id-2: txga2b50cae5c7a4de1826f-006931a76e\r\n
< x-amz-request-id: txga2b50cae5c7a4de1826f-006931a76e\r\n
< content-length: 304\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @985
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 304
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#5139
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#20626
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#18877
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#25239
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#23666
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:26 GMT"
3 => "x-amz-id-2: txg696785c04c3f495286b0-006931a76e"
4 => "x-amz-request-id: txg696785c04c3f495286b0-006931a76e"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861806.7101
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png"
pause_handler: Closure(float $duration) {#23476
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#12861 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775530
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.024413
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000431
size_upload: 0.0
size_download: 305.0
speed_download: 12493.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.024174
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 431
redirect_time_us: 0
starttransfer_time_us: 24174
posttransfer_time_us: 458
total_time_us: 24413
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [27] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png\n
* [HTTP/2] [27] [:method: GET]\n
* [HTTP/2] [27] [:scheme: https]\n
* [HTTP/2] [27] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [27] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png]\n
* [HTTP/2] [27] [content-type: application/xml]\n
* [HTTP/2] [27] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [27] [x-amz-date: 20251204T152326Z]\n
* [HTTP/2] [27] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=0b1eab499bc5d0ff0eac4ccabe7d85b1712d5de0fdc5a79083984c7351d9889a]\n
* [HTTP/2] [27] [content-length: 0]\n
* [HTTP/2] [27] [accept: */*]\n
* [HTTP/2] [27] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [27] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152326Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=0b1eab499bc5d0ff0eac4ccabe7d85b1712d5de0fdc5a79083984c7351d9889a\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:26 GMT\r\n
< x-amz-id-2: txg696785c04c3f495286b0-006931a76e\r\n
< x-amz-request-id: txg696785c04c3f495286b0-006931a76e\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @990
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#20774
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t51/1/16/1f449.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#25239
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/tbb/1/16/1f98b.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tbb/1/16/1f98b.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#16868
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tbb/1/16/1f98b.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#12861
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#24816
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:26 GMT"
3 => "x-amz-id-2: txg87b0a0909b144b0795ae-006931a76e"
4 => "x-amz-request-id: txg87b0a0909b144b0795ae-006931a76e"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861806.7495
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tbb/1/16/1f98b.png"
pause_handler: Closure(float $duration) {#23391
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#23476 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775527
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tbb/1/16/1f98b.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.135858
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000425
size_upload: 0.0
size_download: 305.0
speed_download: 2244.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.135614
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 425
redirect_time_us: 0
starttransfer_time_us: 135614
posttransfer_time_us: 448
total_time_us: 135858
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [29] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tbb/1/16/1f98b.png\n
* [HTTP/2] [29] [:method: GET]\n
* [HTTP/2] [29] [:scheme: https]\n
* [HTTP/2] [29] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [29] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tbb/1/16/1f98b.png]\n
* [HTTP/2] [29] [content-type: application/xml]\n
* [HTTP/2] [29] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [29] [x-amz-date: 20251204T152326Z]\n
* [HTTP/2] [29] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=3de64c210885a18165f1d807a1231d738122a2f265d3cc225616d49e672133f2]\n
* [HTTP/2] [29] [content-length: 0]\n
* [HTTP/2] [29] [accept: */*]\n
* [HTTP/2] [29] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [29] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tbb/1/16/1f98b.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152326Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=3de64c210885a18165f1d807a1231d738122a2f265d3cc225616d49e672133f2\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:26 GMT\r\n
< x-amz-id-2: txg87b0a0909b144b0795ae-006931a76e\r\n
< x-amz-request-id: txg87b0a0909b144b0795ae-006931a76e\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @995
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#23807
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/tbb/1/16/1f98b.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tbb/1/16/1f98b.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#12861
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t1e/1/16/1f33f.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t1e/1/16/1f33f.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#5139
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t1e/1/16/1f33f.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#23476
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#3942
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:26 GMT"
3 => "x-amz-id-2: txg8eb8bd59ad274f6e8f31-006931a76e"
4 => "x-amz-request-id: txg8eb8bd59ad274f6e8f31-006931a76e"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861806.9029
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t1e/1/16/1f33f.png"
pause_handler: Closure(float $duration) {#23935
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#23391 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775524
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t1e/1/16/1f33f.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.120429
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000702
size_upload: 0.0
size_download: 305.0
speed_download: 2532.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.120215
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 702
redirect_time_us: 0
starttransfer_time_us: 120215
posttransfer_time_us: 738
total_time_us: 120429
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [31] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t1e/1/16/1f33f.png\n
* [HTTP/2] [31] [:method: GET]\n
* [HTTP/2] [31] [:scheme: https]\n
* [HTTP/2] [31] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [31] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t1e/1/16/1f33f.png]\n
* [HTTP/2] [31] [content-type: application/xml]\n
* [HTTP/2] [31] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [31] [x-amz-date: 20251204T152326Z]\n
* [HTTP/2] [31] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=425fcf9f8adc2e594faec7b8cf08aee8372d37a1c80a00cb0d6fb0b719028b2c]\n
* [HTTP/2] [31] [content-length: 0]\n
* [HTTP/2] [31] [accept: */*]\n
* [HTTP/2] [31] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [31] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t1e/1/16/1f33f.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152326Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=425fcf9f8adc2e594faec7b8cf08aee8372d37a1c80a00cb0d6fb0b719028b2c\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:26 GMT\r\n
< x-amz-id-2: txg8eb8bd59ad274f6e8f31-006931a76e\r\n
< x-amz-request-id: txg8eb8bd59ad274f6e8f31-006931a76e\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @1000
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#24354
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t1e/1/16/1f33f.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t1e/1/16/1f33f.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#23476
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t99/1/16/1f33a.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t99/1/16/1f33a.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#20774
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t99/1/16/1f33a.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#23391
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#18635
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:27 GMT"
3 => "x-amz-id-2: txgb6b9a09e1c484bbf9aa0-006931a76f"
4 => "x-amz-request-id: txgb6b9a09e1c484bbf9aa0-006931a76f"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861807.0408
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t99/1/16/1f33a.png"
pause_handler: Closure(float $duration) {#23763
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#23935 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775521
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t99/1/16/1f33a.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.069442
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.00112
size_upload: 0.0
size_download: 305.0
speed_download: 4392.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.069293
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 1120
redirect_time_us: 0
starttransfer_time_us: 69293
posttransfer_time_us: 1197
total_time_us: 69442
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [33] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t99/1/16/1f33a.png\n
* [HTTP/2] [33] [:method: GET]\n
* [HTTP/2] [33] [:scheme: https]\n
* [HTTP/2] [33] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [33] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t99/1/16/1f33a.png]\n
* [HTTP/2] [33] [content-type: application/xml]\n
* [HTTP/2] [33] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [33] [x-amz-date: 20251204T152327Z]\n
* [HTTP/2] [33] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=c983a5d6b822ef74c8c2303a0ea935535ca2b1256a6c834d066a71bf110fcb75]\n
* [HTTP/2] [33] [content-length: 0]\n
* [HTTP/2] [33] [accept: */*]\n
* [HTTP/2] [33] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [33] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t99/1/16/1f33a.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152327Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=c983a5d6b822ef74c8c2303a0ea935535ca2b1256a6c834d066a71bf110fcb75\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:27 GMT\r\n
< x-amz-id-2: txgb6b9a09e1c484bbf9aa0-006931a76f\r\n
< x-amz-request-id: txgb6b9a09e1c484bbf9aa0-006931a76f\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @1005
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#3893
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t99/1/16/1f33a.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t99/1/16/1f33a.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#23391
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#23807
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#23935
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#23425
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:27 GMT"
3 => "x-amz-id-2: txgdf897a7a2d2445b69920-006931a76f"
4 => "x-amz-request-id: txgdf897a7a2d2445b69920-006931a76f"
5 => "content-length: 304"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861807.1232
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png"
pause_handler: Closure(float $duration) {#20977
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#23763 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775518
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png"
content_type: "application/xml"
header_size: 206
request_size: 598
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.059291
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000318
size_upload: 0.0
size_download: 304.0
speed_download: 5127.0
speed_upload: 0.0
download_content_length: 304.0
upload_content_length: 0.0
starttransfer_time: 0.059116
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 318
redirect_time_us: 0
starttransfer_time_us: 59116
posttransfer_time_us: 337
total_time_us: 59291
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [35] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png\n
* [HTTP/2] [35] [:method: GET]\n
* [HTTP/2] [35] [:scheme: https]\n
* [HTTP/2] [35] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [35] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png]\n
* [HTTP/2] [35] [content-type: application/xml]\n
* [HTTP/2] [35] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [35] [x-amz-date: 20251204T152327Z]\n
* [HTTP/2] [35] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=2dfc29259982810591e755b765d16b99522966ec892c47c151802ce34cbaae1f]\n
* [HTTP/2] [35] [content-length: 0]\n
* [HTTP/2] [35] [accept: */*]\n
* [HTTP/2] [35] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [35] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152327Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=2dfc29259982810591e755b765d16b99522966ec892c47c151802ce34cbaae1f\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:27 GMT\r\n
< x-amz-id-2: txgdf897a7a2d2445b69920-006931a76f\r\n
< x-amz-request-id: txgdf897a7a2d2445b69920-006931a76f\r\n
< content-length: 304\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @1010
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 304
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#18700
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
League\Flysystem\UnableToReadFile {#23935
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t57/1/16/1f609.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t57/1/16/1f609.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#24354
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t57/1/16/1f609.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#23763
-client: Symfony\Component\HttpClient\CurlHttpClient {#595
-defaultOptions: array:31 [
"auth_basic" => null
"auth_bearer" => null
"query" => []
"headers" => []
"body" => ""
"json" => null
"user_data" => null
"max_redirects" => 20
"http_version" => null
"base_uri" => null
"buffer" => true
"on_progress" => null
"resolve" => []
"proxy" => null
"no_proxy" => null
"timeout" => null
"max_duration" => 0
"bindto" => "0"
"verify_peer" => true
"verify_host" => true
"cafile" => null
"capath" => null
"local_cert" => null
"local_pk" => null
"passphrase" => null
"ciphers" => null
"peer_fingerprint" => null
"capture_peer_cert_chain" => false
"crypto_method" => 33
"extra" => []
"auth_ntlm" => null
]
-logger: null
-maxHostConnections: 6
-maxPendingPushes: 50
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#24530
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Thu, 04 Dec 2025 15:23:27 GMT"
3 => "x-amz-id-2: txgda273a5c3f5a4bd09099-006931a76f"
4 => "x-amz-request-id: txgda273a5c3f5a4bd09099-006931a76f"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1764861807.1972
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t57/1/16/1f609.png"
pause_handler: Closure(float $duration) {#23342
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#20977 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#20336 …}
$execCounter: -9223372036854775515
}
}
redirect_url: null
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t57/1/16/1f609.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.023165
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000399
size_upload: 0.0
size_download: 305.0
speed_download: 13166.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.022975
redirect_time: 0.0
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.4"
local_port: 36944
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 0
connect_time_us: 0
namelookup_time_us: 0
pretransfer_time_us: 399
redirect_time_us: 0
starttransfer_time_us: 22975
posttransfer_time_us: 426
total_time_us: 23165
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [37] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t57/1/16/1f609.png\n
* [HTTP/2] [37] [:method: GET]\n
* [HTTP/2] [37] [:scheme: https]\n
* [HTTP/2] [37] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [37] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t57/1/16/1f609.png]\n
* [HTTP/2] [37] [content-type: application/xml]\n
* [HTTP/2] [37] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [37] [x-amz-date: 20251204T152327Z]\n
* [HTTP/2] [37] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=f9d7de76588aa60059220d58f364a6bcb9ed15d929897f1e5257f27e1e7e3cdd]\n
* [HTTP/2] [37] [content-length: 0]\n
* [HTTP/2] [37] [accept: */*]\n
* [HTTP/2] [37] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [37] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t57/1/16/1f609.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20251204T152327Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20251204/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=f9d7de76588aa60059220d58f364a6bcb9ed15d929897f1e5257f27e1e7e3cdd\r\n
content-length: 0\r\n
Accept: */*\r\n
User-Agent: Symfony HttpClient (Curl)\r\n
Accept-Encoding: gzip\r\n
\r\n
* Request completely sent off\n
< HTTP/2 404 \r\n
< content-type: application/xml\r\n
< date: Thu, 04 Dec 2025 15:23:27 GMT\r\n
< x-amz-id-2: txgda273a5c3f5a4bd09099-006931a76f\r\n
< x-amz-request-id: txgda273a5c3f5a4bd09099-006931a76f\r\n
< content-length: 305\r\n
< \r\n
* Connection #11 to host s3.fr-par.scw.cloud left intact\n
"""
…16
}
-info: array:1 [
"canceled" => false
]
-passthru: null
-stream: null
-yieldedState: 2
-initializer: null
-shouldBuffer: null
-content: stream resource @1015
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-offset: 305
-jsonData: null
}
-awsError: AsyncAws\Core\AwsError\AwsError {#24715
-code: "NoSuchKey"
-message: "The specified key does not exist."
-type: null
-detail: null
}
trace: {
/app/vendor/async-aws/core/src/Response.php:432 {
AsyncAws\Core\Response::{closure:AsyncAws\Core\Response::defineResolveStatus():431} …
› $this->resolveResult = static function () use ($exceptionClass, $httpResponse, $awsError): HttpException {
› return new $exceptionClass($httpResponse, $awsError);
› };
}
/app/vendor/async-aws/core/src/Response.php:448 {
AsyncAws\Core\Response->getResolveStatus(): bool …
› if (\is_callable($this->resolveResult)) {
› $this->resolveResult = ($this->resolveResult)();
› }
}
/app/vendor/async-aws/core/src/Response.php:179 {
AsyncAws\Core\Response->resolve(?float $timeout = null): bool …
›
› return $this->getResolveStatus();
› }
}
/app/vendor/async-aws/core/src/Result.php:69 {
AsyncAws\Core\Result->resolve(?float $timeout = null): bool …
› {
› return $this->response->resolve($timeout);
› }
}
/app/vendor/async-aws/core/src/Result.php:137 {
AsyncAws\Core\Result->initialize(): void …
›
› $this->resolve();
› $this->initialized = true;
}
/app/vendor/async-aws/s3/src/Result/GetObjectOutput.php:375 {
AsyncAws\S3\Result\GetObjectOutput->getBody(): ResultStream …
› {
› $this->initialize();
›
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:524 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› try {
› return $this->client->getObject($options)->getBody();
› } catch (Throwable $exception) {
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
-location: "https:/static.xx.fbcdn.net/images/emoji.php/v9/t57/1/16/1f609.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t57/1/16/1f609.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/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);
›
}
/app/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) {
}
/app/vendor/symfony/http-kernel/Kernel.php:182 {
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 {
}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:38 {
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33} …
› $sfRequest = Request::createFromGlobals();
› $sfResponse = $this->kernel->handle($sfRequest);
›
}
Runtime\FrankenPhpSymfony\Runner->{closure:Runtime\FrankenPhpSymfony\Runner::run():33}() {}
/app/vendor/runtime/frankenphp-symfony/src/Runner.php:45 {
Runtime\FrankenPhpSymfony\Runner->run(): int …
› do {
› $ret = \frankenphp_handle_request($handler);
›
}
/app/vendor/autoload_runtime.php:29 {
require_once …
› ->getRunner($app)
› ->run()
› );
}
/app/public/index.php:5 {
›
› require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
›
arguments: {
"/app/vendor/autoload_runtime.php"
}
}
}
}
%PDF-1.4
%
1 0 obj
<>
endobj
3 0 obj
<>
endobj
6 0 obj
<> stream
x}J Ԃ(28hiRpi"VSAOHStspu+.c(#ARx@ ?F[V[G@`*dK$O.Ko@6`O,f'˘O asx0A6vf
8{c7%opZ:uQ 0Q٣F *Ԑ(SDGACAajgrx]s
PxM cvhO