League\Flysystem\UnableToReadFile {#3504
#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 {#5125
#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 {#5268
-client: Symfony\Component\HttpClient\CurlHttpClient {#936
-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
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#2712
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Wed, 11 Feb 2026 02:37:35 GMT"
3 => "x-amz-id-2: txg1dc82fd986df49e9b905-00698beb6f"
4 => "x-amz-request-id: txg1dc82fd986df49e9b905-00698beb6f"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1770777455.3229
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) {#3036
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#2738 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
$execCounter: -9223372036854775659
}
}
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.344512
namelookup_time: 0.002121
connect_time: 0.003512
pretransfer_time: 0.014852
size_upload: 0.0
size_download: 305.0
speed_download: 885.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.344275
redirect_time: 0.0
redirect_url: null
primary_ip: "51.159.62.20"
certinfo: []
primary_port: 443
local_ip: "192.168.16.3"
local_port: 36344
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 14745
connect_time_us: 3512
namelookup_time_us: 2121
pretransfer_time_us: 14852
redirect_time_us: 0
starttransfer_time_us: 344275
posttransfer_time_us: 14860
total_time_us: 344512
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* received GOAWAY, error=0, last_stream=7\n
* Connection 8 seems to be dead\n
* shutting down connection #8\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::f, 2001:bc8:10::d\n
* IPv4: 51.159.62.20, 51.159.62.18, 51.159.62.19\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::f]:443...\n
* Immediate connect fail for 2001:bc8:10::f: 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 51.159.62.20: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: Jan 27 08:59:06 2026 GMT\n
* expire date: Apr 27 08:59:05 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.20) 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/tbb/1/16/1f98b.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/tbb/1/16/1f98b.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: 20260211T023735Z]\n
* [HTTP/2] [1] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=fe923a7f6e2c647c046628010b75a9d01bb094ae80f5c3adbfa3c2877b909dcc]\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/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: 20260211T023735Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=fe923a7f6e2c647c046628010b75a9d01bb094ae80f5c3adbfa3c2877b909dcc\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: Wed, 11 Feb 2026 02:37:35 GMT\r\n
< x-amz-id-2: txg1dc82fd986df49e9b905-00698beb6f\r\n
< x-amz-request-id: txg1dc82fd986df49e9b905-00698beb6f\r\n
< content-length: 305\r\n
< \r\n
* Connection #9 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 @934
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 {#3346
-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:193 {
Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $this->getHttpKernel()->handle($request, $type, $catch);
› } finally {
}
/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:32 {
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:193 {
Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $this->getHttpKernel()->handle($request, $type, $catch);
› } finally {
}
/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:32 {
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 {#5268
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/tcd/1/16/1fab6.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tcd/1/16/1fab6.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 {#1245
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tcd/1/16/1fab6.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 {#2738
-client: Symfony\Component\HttpClient\CurlHttpClient {#936
-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
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#4683
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Wed, 11 Feb 2026 02:37:35 GMT"
3 => "x-amz-id-2: txg8aecc8ace3354f81a0e7-00698beb6f"
4 => "x-amz-request-id: txg8aecc8ace3354f81a0e7-00698beb6f"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1770777455.6786
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tcd/1/16/1fab6.png"
pause_handler: Closure(float $duration) {#4857
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#3036 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
$execCounter: -9223372036854775649
}
}
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tcd/1/16/1fab6.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.328582
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000247
size_upload: 0.0
size_download: 305.0
speed_download: 928.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.328426
redirect_time: 0.0
redirect_url: null
primary_ip: "51.159.62.20"
certinfo: []
primary_port: 443
local_ip: "192.168.16.3"
local_port: 36344
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: 247
redirect_time_us: 0
starttransfer_time_us: 328426
posttransfer_time_us: 261
total_time_us: 328582
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/tcd/1/16/1fab6.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/tcd/1/16/1fab6.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: 20260211T023735Z]\n
* [HTTP/2] [3] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=7069d4a22dbfceb57470df12201ad68836220f574cef5ace3d6634b2f6cf7ec3]\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/tcd/1/16/1fab6.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: 20260211T023735Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=7069d4a22dbfceb57470df12201ad68836220f574cef5ace3d6634b2f6cf7ec3\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: Wed, 11 Feb 2026 02:37:35 GMT\r\n
< x-amz-id-2: txg8aecc8ace3354f81a0e7-00698beb6f\r\n
< x-amz-request-id: txg8aecc8ace3354f81a0e7-00698beb6f\r\n
< content-length: 305\r\n
< \r\n
* Connection #9 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 @964
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 {#4003
-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:193 {
Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $this->getHttpKernel()->handle($request, $type, $catch);
› } finally {
}
/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:32 {
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/tcd/1/16/1fab6.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/tcd/1/16/1fab6.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:193 {
Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $this->getHttpKernel()->handle($request, $type, $catch);
› } finally {
}
/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:32 {
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 {#2738
#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 {#4911
#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 {#3036
-client: Symfony\Component\HttpClient\CurlHttpClient {#936
-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
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#1868
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Wed, 11 Feb 2026 02:37:36 GMT"
3 => "x-amz-id-2: txg6223162e1096411996bc-00698beb70"
4 => "x-amz-request-id: txg6223162e1096411996bc-00698beb70"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1770777456.0143
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) {#4215
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#4857 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
$execCounter: -9223372036854775646
}
}
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.211374
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000176
size_upload: 0.0
size_download: 305.0
speed_download: 1442.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.211245
redirect_time: 0.0
redirect_url: null
primary_ip: "51.159.62.20"
certinfo: []
primary_port: 443
local_ip: "192.168.16.3"
local_port: 36344
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: 176
redirect_time_us: 0
starttransfer_time_us: 211245
posttransfer_time_us: 187
total_time_us: 211374
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/t99/1/16/1f33a.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/t99/1/16/1f33a.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: 20260211T023736Z]\n
* [HTTP/2] [5] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=a39e91bb661ea1455190c4099c3e0a22510d4d5b886cb959dc9b8aae960b5b3c]\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/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: 20260211T023736Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=a39e91bb661ea1455190c4099c3e0a22510d4d5b886cb959dc9b8aae960b5b3c\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: Wed, 11 Feb 2026 02:37:36 GMT\r\n
< x-amz-id-2: txg6223162e1096411996bc-00698beb70\r\n
< x-amz-request-id: txg6223162e1096411996bc-00698beb70\r\n
< content-length: 305\r\n
< \r\n
* Connection #9 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 @969
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 {#3378
-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:193 {
Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $this->getHttpKernel()->handle($request, $type, $catch);
› } finally {
}
/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:32 {
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:193 {
Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $this->getHttpKernel()->handle($request, $type, $catch);
› } finally {
}
/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:32 {
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 {#3036
#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 {#3484
#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 {#4857
-client: Symfony\Component\HttpClient\CurlHttpClient {#936
-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
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#4369
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Wed, 11 Feb 2026 02:37:36 GMT"
3 => "x-amz-id-2: txgb848608ad01f4d3f88da-00698beb70"
4 => "x-amz-request-id: txgb848608ad01f4d3f88da-00698beb70"
5 => "content-length: 304"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1770777456.2323
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) {#4755
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#4215 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
$execCounter: -9223372036854775643
}
}
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.149833
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000217
size_upload: 0.0
size_download: 304.0
speed_download: 2028.0
speed_upload: 0.0
download_content_length: 304.0
upload_content_length: 0.0
starttransfer_time: 0.149701
redirect_time: 0.0
redirect_url: null
primary_ip: "51.159.62.20"
certinfo: []
primary_port: 443
local_ip: "192.168.16.3"
local_port: 36344
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: 217
redirect_time_us: 0
starttransfer_time_us: 149701
posttransfer_time_us: 230
total_time_us: 149833
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/t6c/1/16/2764.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/t6c/1/16/2764.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: 20260211T023736Z]\n
* [HTTP/2] [7] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=dcee87380f99efdafb5e7bb96adbf9e289dbbde18beb608330d7e822a19d4218]\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/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: 20260211T023736Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=dcee87380f99efdafb5e7bb96adbf9e289dbbde18beb608330d7e822a19d4218\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: Wed, 11 Feb 2026 02:37:36 GMT\r\n
< x-amz-id-2: txgb848608ad01f4d3f88da-00698beb70\r\n
< x-amz-request-id: txgb848608ad01f4d3f88da-00698beb70\r\n
< content-length: 304\r\n
< \r\n
* Connection #9 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 @974
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 {#3265
-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:193 {
Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $this->getHttpKernel()->handle($request, $type, $catch);
› } finally {
}
/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:32 {
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:193 {
Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $this->getHttpKernel()->handle($request, $type, $catch);
› } finally {
}
/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:32 {
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 {#4857
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/tf0/1/16/1f338.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tf0/1/16/1f338.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 {#2921
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tf0/1/16/1f338.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 {#4215
-client: Symfony\Component\HttpClient\CurlHttpClient {#936
-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
-multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#3108
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Wed, 11 Feb 2026 02:37:36 GMT"
3 => "x-amz-id-2: txg54b78578502844cb8716-00698beb70"
4 => "x-amz-request-id: txg54b78578502844cb8716-00698beb70"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1770777456.3881
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tf0/1/16/1f338.png"
pause_handler: Closure(float $duration) {#4560
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#4755 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
$execCounter: -9223372036854775640
}
}
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tf0/1/16/1f338.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.336322
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000271
size_upload: 0.0
size_download: 305.0
speed_download: 906.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.336177
redirect_time: 0.0
redirect_url: null
primary_ip: "51.159.62.20"
certinfo: []
primary_port: 443
local_ip: "192.168.16.3"
local_port: 36344
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: 271
redirect_time_us: 0
starttransfer_time_us: 336177
posttransfer_time_us: 293
total_time_us: 336322
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/tf0/1/16/1f338.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/tf0/1/16/1f338.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: 20260211T023736Z]\n
* [HTTP/2] [9] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=047621c0266cc77e90a2591cd0440f410c1b773f0b93eab7fa1171e8219942f3]\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/tf0/1/16/1f338.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: 20260211T023736Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=047621c0266cc77e90a2591cd0440f410c1b773f0b93eab7fa1171e8219942f3\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: Wed, 11 Feb 2026 02:37:36 GMT\r\n
< x-amz-id-2: txg54b78578502844cb8716-00698beb70\r\n
< x-amz-request-id: txg54b78578502844cb8716-00698beb70\r\n
< content-length: 305\r\n
< \r\n
* Connection #9 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 @979
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 {#5125
-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:193 {
Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $this->getHttpKernel()->handle($request, $type, $catch);
› } finally {
}
/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:32 {
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/tf0/1/16/1f338.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/tf0/1/16/1f338.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:193 {
Symfony\Component\HttpKernel\Kernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $this->getHttpKernel()->handle($request, $type, $catch);
› } finally {
}
/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:32 {
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