League\Flysystem\UnableToReadFile {#29452
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/tfd/1/16/1f64c.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tfd/1/16/1f64c.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 {#31151
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tfd/1/16/1f64c.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 {#10897
-client: Symfony\Component\HttpClient\CurlHttpClient {#27804
-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 {#27805 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#28168
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Sat, 14 Mar 2026 03:59:59 GMT"
3 => "x-amz-id-2: txgf1d48284ae8c4925a78b-0069b4dd3f"
4 => "x-amz-request-id: txgf1d48284ae8c4925a78b-0069b4dd3f"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1773460799.5179
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tfd/1/16/1f64c.png"
pause_handler: Closure(float $duration) {#28818
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#31497 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#27805 …}
$execCounter: -9223372036854775727
}
}
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tfd/1/16/1f64c.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.150571
namelookup_time: 0.003364
connect_time: 0.003684
pretransfer_time: 0.016385
size_upload: 0.0
size_download: 305.0
speed_download: 2025.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.150365
redirect_time: 0.0
redirect_url: null
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.3"
local_port: 39598
http_version: 3
protocol: 2
ssl_verifyresult: 0
scheme: "https"
appconnect_time_us: 16173
connect_time_us: 3684
namelookup_time_us: 3364
pretransfer_time_us: 16385
redirect_time_us: 0
starttransfer_time_us: 150365
posttransfer_time_us: 16395
total_time_us: 150571
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Too old connection (1726 seconds idle), disconnect it\n
* Connection 4 seems to be dead\n
* shutting down connection #4\n
* Hostname in DNS cache was stale, zapped\n
* Host s3.fr-par.scw.cloud:443 was resolved.\n
* IPv6: 2001:bc8:10::f, 2001:bc8:10::c, 2001:bc8:10::d\n
* IPv4: 51.159.62.19, 51.159.62.18, 51.159.62.20\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::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 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: 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.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/tfd/1/16/1f64c.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/tfd/1/16/1f64c.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: 20260314T035959Z]\n
* [HTTP/2] [1] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260314/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=9f177eb350296269d8c00b6fa52d5f32f3ac9dd6852713a03a812a1703c8b1de]\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/tfd/1/16/1f64c.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: 20260314T035959Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260314/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=9f177eb350296269d8c00b6fa52d5f32f3ac9dd6852713a03a812a1703c8b1de\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: Sat, 14 Mar 2026 03:59:59 GMT\r\n
< x-amz-id-2: txgf1d48284ae8c4925a78b-0069b4dd3f\r\n
< x-amz-request-id: txgf1d48284ae8c4925a78b-0069b4dd3f\r\n
< content-length: 305\r\n
< \r\n
* Connection #5 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 @5082
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 {#32097
-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/tfd/1/16/1f64c.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/tfd/1/16/1f64c.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 {#10897
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/t7f/1/16/1f60a.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t7f/1/16/1f60a.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 {#24692
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t7f/1/16/1f60a.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 {#31497
-client: Symfony\Component\HttpClient\CurlHttpClient {#27804
-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 {#27805 …}
}
-response: Symfony\Component\HttpClient\Response\CurlResponse {#11093
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Sat, 14 Mar 2026 03:59:59 GMT"
3 => "x-amz-id-2: txgdd5ef698fdd14021a62f-0069b4dd3f"
4 => "x-amz-request-id: txgdd5ef698fdd14021a62f-0069b4dd3f"
5 => "content-length: 305"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1773460799.6856
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t7f/1/16/1f60a.png"
pause_handler: Closure(float $duration) {#26206
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#28818 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#27805 …}
$execCounter: -9223372036854775716
}
}
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/t7f/1/16/1f60a.png"
content_type: "application/xml"
header_size: 206
request_size: 599
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.156152
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000238
size_upload: 0.0
size_download: 305.0
speed_download: 1953.0
speed_upload: 0.0
download_content_length: 305.0
upload_content_length: 0.0
starttransfer_time: 0.156021
redirect_time: 0.0
redirect_url: null
primary_ip: "51.159.62.19"
certinfo: []
primary_port: 443
local_ip: "192.168.16.3"
local_port: 39598
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: 238
redirect_time_us: 0
starttransfer_time_us: 156021
posttransfer_time_us: 250
total_time_us: 156152
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/t7f/1/16/1f60a.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/t7f/1/16/1f60a.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: 20260314T035959Z]\n
* [HTTP/2] [3] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260314/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=cae1ebbab1d2afcd4e6426fb2bb6e61c407d1c3600133854cf6109d1094a7860]\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/t7f/1/16/1f60a.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: 20260314T035959Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260314/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=cae1ebbab1d2afcd4e6426fb2bb6e61c407d1c3600133854cf6109d1094a7860\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: Sat, 14 Mar 2026 03:59:59 GMT\r\n
< x-amz-id-2: txgdd5ef698fdd14021a62f-0069b4dd3f\r\n
< x-amz-request-id: txgdd5ef698fdd14021a62f-0069b4dd3f\r\n
< content-length: 305\r\n
< \r\n
* Connection #5 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 @5112
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 {#28062
-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/t7f/1/16/1f60a.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/t7f/1/16/1f60a.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
5 0 obj
<> stream
x}J`kAA\hX\[V4M؟&.ހe(%o${x/@$*Ns˥QSLeZ}K}^'7v!y.'V>s<^(F>7V=fWtV%J-جS#LQ"'IB ENPyzfISPYH)@&/C~{
e61]shEH 0W'9]Y?bM4 ?K
endstream
endobj
4 0 obj
<> stream
x}ϹO`q)'`t18W'&rIE{"Ɔ+BZZ O,uM$I$Qo.j~ia
E^]tU6Ov^ 9bQxa_ƈ/a` lv*ghj.78Uv)fOESP@ߕ݈7lɑL `&.F25 ;X)pK2O6l9AѤgHCܟ2j"6)3!CGx7#h