League\Flysystem\UnableToReadFile {#18857
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#20348
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#17272
-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 {#1243
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Wed, 11 Feb 2026 02:52:38 GMT"
3 => "x-amz-id-2: txgf2b525967fab45ae9ffa-00698beef6"
4 => "x-amz-request-id: txgf2b525967fab45ae9ffa-00698beef6"
5 => "content-length: 304"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1770778358.9986
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
pause_handler: Closure(float $duration) {#13124
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#17008 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
$execCounter: -9223372036854775498
}
}
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
content_type: "application/xml"
header_size: 206
request_size: 598
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.311975
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.00016
size_upload: 0.0
size_download: 304.0
speed_download: 974.0
speed_upload: 0.0
download_content_length: 304.0
upload_content_length: 0.0
starttransfer_time: 0.311854
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: 41806
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: 160
redirect_time_us: 0
starttransfer_time_us: 311854
posttransfer_time_us: 168
total_time_us: 311975
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/tb4/1/16/2b50.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/tb4/1/16/2b50.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: 20260211T025238Z]\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=bb4f1df7da02709004a08b0c560fb9289e223b6230d5cbfb492b8cbfd3a3b34a]\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/tb4/1/16/2b50.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20260211T025238Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=bb4f1df7da02709004a08b0c560fb9289e223b6230d5cbfb492b8cbfd3a3b34a\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:52:38 GMT\r\n
< x-amz-id-2: txgf2b525967fab45ae9ffa-00698beef6\r\n
< x-amz-request-id: txgf2b525967fab45ae9ffa-00698beef6\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 @1276
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 {#3073
-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/tb4/1/16/2b50.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/vendor/symfony/http-kernel/HttpKernel.php:183 {
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response …
› // call controller
› $response = $controller(...$arguments);
›
}
/app/vendor/symfony/http-kernel/HttpKernel.php:76 {
Symfony\Component\HttpKernel\HttpKernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $response = $this->handleRaw($request, $type);
› } catch (\Throwable $e) {
}
/app/vendor/symfony/http-kernel/Kernel.php: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 {#17272
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#17366
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#17008
-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 {#3464
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Wed, 11 Feb 2026 02:52:39 GMT"
3 => "x-amz-id-2: txg30b625e54eeb46e2a722-00698beef7"
4 => "x-amz-request-id: txg30b625e54eeb46e2a722-00698beef7"
5 => "content-length: 304"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1770778359.3198
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
pause_handler: Closure(float $duration) {#20226
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#13124 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
$execCounter: -9223372036854775495
}
}
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
content_type: "application/xml"
header_size: 206
request_size: 598
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.156736
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000252
size_upload: 0.0
size_download: 304.0
speed_download: 1939.0
speed_upload: 0.0
download_content_length: 304.0
upload_content_length: 0.0
starttransfer_time: 0.156607
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: 41806
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: 252
redirect_time_us: 0
starttransfer_time_us: 156607
posttransfer_time_us: 266
total_time_us: 156736
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [11] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png\n
* [HTTP/2] [11] [:method: GET]\n
* [HTTP/2] [11] [:scheme: https]\n
* [HTTP/2] [11] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [11] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png]\n
* [HTTP/2] [11] [content-type: application/xml]\n
* [HTTP/2] [11] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [11] [x-amz-date: 20260211T025239Z]\n
* [HTTP/2] [11] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=e59b68fb4c6acec9a8636db7dc83bf3bab68f5a680eb9a919a078f9ca821a7bd]\n
* [HTTP/2] [11] [content-length: 0]\n
* [HTTP/2] [11] [accept: */*]\n
* [HTTP/2] [11] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [11] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20260211T025239Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=e59b68fb4c6acec9a8636db7dc83bf3bab68f5a680eb9a919a078f9ca821a7bd\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:52:39 GMT\r\n
< x-amz-id-2: txg30b625e54eeb46e2a722-00698beef7\r\n
< x-amz-request-id: txg30b625e54eeb46e2a722-00698beef7\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 @1306
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 {#17765
-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/tb4/1/16/2b50.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/vendor/symfony/http-kernel/HttpKernel.php:183 {
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response …
› // call controller
› $response = $controller(...$arguments);
›
}
/app/vendor/symfony/http-kernel/HttpKernel.php:76 {
Symfony\Component\HttpKernel\HttpKernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $response = $this->handleRaw($request, $type);
› } catch (\Throwable $e) {
}
/app/vendor/symfony/http-kernel/Kernel.php: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 {#17008
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#16071
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#13124
-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 {#22718
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Wed, 11 Feb 2026 02:52:39 GMT"
3 => "x-amz-id-2: txg77fe8499c5b143db8e6d-00698beef7"
4 => "x-amz-request-id: txg77fe8499c5b143db8e6d-00698beef7"
5 => "content-length: 304"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1770778359.4838
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
pause_handler: Closure(float $duration) {#20785
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#20226 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
$execCounter: -9223372036854775492
}
}
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
content_type: "application/xml"
header_size: 206
request_size: 598
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.093916
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.000192
size_upload: 0.0
size_download: 304.0
speed_download: 3236.0
speed_upload: 0.0
download_content_length: 304.0
upload_content_length: 0.0
starttransfer_time: 0.093774
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: 41806
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: 192
redirect_time_us: 0
starttransfer_time_us: 93774
posttransfer_time_us: 205
total_time_us: 93916
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [13] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png\n
* [HTTP/2] [13] [:method: GET]\n
* [HTTP/2] [13] [:scheme: https]\n
* [HTTP/2] [13] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [13] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png]\n
* [HTTP/2] [13] [content-type: application/xml]\n
* [HTTP/2] [13] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [13] [x-amz-date: 20260211T025239Z]\n
* [HTTP/2] [13] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=e59b68fb4c6acec9a8636db7dc83bf3bab68f5a680eb9a919a078f9ca821a7bd]\n
* [HTTP/2] [13] [content-length: 0]\n
* [HTTP/2] [13] [accept: */*]\n
* [HTTP/2] [13] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [13] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20260211T025239Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=e59b68fb4c6acec9a8636db7dc83bf3bab68f5a680eb9a919a078f9ca821a7bd\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:52:39 GMT\r\n
< x-amz-id-2: txg77fe8499c5b143db8e6d-00698beef7\r\n
< x-amz-request-id: txg77fe8499c5b143db8e6d-00698beef7\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 @1311
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 {#21709
-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/tb4/1/16/2b50.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/vendor/symfony/http-kernel/HttpKernel.php:183 {
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response …
› // call controller
› $response = $controller(...$arguments);
›
}
/app/vendor/symfony/http-kernel/HttpKernel.php:76 {
Symfony\Component\HttpKernel\HttpKernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $response = $this->handleRaw($request, $type);
› } catch (\Throwable $e) {
}
/app/vendor/symfony/http-kernel/Kernel.php: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 {#13124
#message: """
Unable to read file from location: https:/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png. HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail:
"""
#code: 0
#file: "/app/vendor/league/flysystem/src/UnableToReadFile.php"
#line: 24
-previous: AsyncAws\S3\Exception\NoSuchKeyException {#21618
#message: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
#code: 404
#file: "/app/vendor/async-aws/core/src/Response.php"
#line: 432
-response: Symfony\Component\HttpClient\Response\AsyncResponse {#20226
-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 {#21582
response_headers: array:6 [
0 => "HTTP/2 404 "
1 => "content-type: application/xml"
2 => "date: Wed, 11 Feb 2026 02:52:39 GMT"
3 => "x-amz-id-2: txg97d9378bb11b4354b089-00698beef7"
4 => "x-amz-request-id: txg97d9378bb11b4354b089-00698beef7"
5 => "content-length: 304"
]
http_code: 404
error: null
canceled: false
http_method: "GET"
user_data: null
max_duration: 0.0
start_time: 1770778359.5846
original_url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
pause_handler: Closure(float $duration) {#21642
class: "Symfony\Component\HttpClient\Response\CurlResponse"
use: {
$ch: CurlHandle {#20785 …}
$multi: Symfony\Component\HttpClient\Internal\CurlClientState {#937 …}
$execCounter: -9223372036854775489
}
}
url: "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png"
content_type: "application/xml"
header_size: 206
request_size: 598
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0.179944
namelookup_time: 0.0
connect_time: 0.0
pretransfer_time: 0.00023
size_upload: 0.0
size_download: 304.0
speed_download: 1689.0
speed_upload: 0.0
download_content_length: 304.0
upload_content_length: 0.0
starttransfer_time: 0.179819
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: 41806
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: 230
redirect_time_us: 0
starttransfer_time_us: 179819
posttransfer_time_us: 247
total_time_us: 179944
effective_method: "GET"
capath: "/etc/ssl/certs"
cainfo: "/etc/ssl/certs/ca-certificates.crt"
debug: """
* Re-using existing https: connection with host s3.fr-par.scw.cloud\n
* [HTTP/2] [15] OPENED stream for https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png\n
* [HTTP/2] [15] [:method: GET]\n
* [HTTP/2] [15] [:scheme: https]\n
* [HTTP/2] [15] [:authority: s3.fr-par.scw.cloud]\n
* [HTTP/2] [15] [:path: /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png]\n
* [HTTP/2] [15] [content-type: application/xml]\n
* [HTTP/2] [15] [x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]\n
* [HTTP/2] [15] [x-amz-date: 20260211T025239Z]\n
* [HTTP/2] [15] [authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=e59b68fb4c6acec9a8636db7dc83bf3bab68f5a680eb9a919a078f9ca821a7bd]\n
* [HTTP/2] [15] [content-length: 0]\n
* [HTTP/2] [15] [accept: */*]\n
* [HTTP/2] [15] [user-agent: Symfony HttpClient (Curl)]\n
* [HTTP/2] [15] [accept-encoding: gzip]\n
> GET /s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png HTTP/2\r\n
Host: s3.fr-par.scw.cloud\r\n
content-type: application/xml\r\n
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n
x-amz-date: 20260211T025239Z\r\n
authorization: AWS4-HMAC-SHA256 Credential=SCW6XTRHZYNV3BHKVDH7/20260211/fr-par/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=e59b68fb4c6acec9a8636db7dc83bf3bab68f5a680eb9a919a078f9ca821a7bd\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:52:39 GMT\r\n
< x-amz-id-2: txg97d9378bb11b4354b089-00698beef7\r\n
< x-amz-request-id: txg97d9378bb11b4354b089-00698beef7\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 @1316
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 {#19590
-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/tb4/1/16/2b50.png"
-reason: """
HTTP 404 returned for "https://s3.fr-par.scw.cloud/s3.tousformateurs.fr/https%3A/static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/2b50.png".\n
\n
Code: NoSuchKey\n
Message: The specified key does not exist.\n
Type: \n
Detail: \n
"""
trace: {
/app/vendor/league/flysystem/src/UnableToReadFile.php:24 {
League\Flysystem\UnableToReadFile::fromLocation(string $location, string $reason = '', ?Throwable $previous = null): UnableToReadFile …
› {
› $e = new static(rtrim("Unable to read file from location: {$location}. {$reason}"), 0, $previous);
› $e->location = $location;
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:526 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->readObject(string $path): ResultStream …
› } catch (Throwable $exception) {
› throw UnableToReadFile::fromLocation($path, $exception->getMessage(), $exception);
› }
}
/app/vendor/league/flysystem-async-aws-s3/AsyncAwsS3Adapter.php:154 {
League\Flysystem\AsyncAwsS3\AsyncAwsS3Adapter->read(string $path): string …
› {
› $body = $this->readObject($path);
›
}
/app/vendor/league/flysystem/src/Filesystem.php:76 {
League\Flysystem\Filesystem->read(string $location): string …
› {
› return $this->adapter->read($this->pathNormalizer->normalizePath($location));
› }
}
/app/src/Service/StorageService.php:65 {
App\Service\StorageService->read(string $path): string …
› try {
› return $this->uploadsStorage->read($path);
› } catch (FilesystemException|UnableToReadFile $exception) {
}
/app/src/Service/PDFService.php:173 {
App\Service\PDFService->convertImageToBase64(string $imgSrc, string $siteUrl): string …
› ? file_get_contents($this->projectDir.'/'.$path)
› : $this->storageService->read($path);
›
}
/app/src/Service/PDFService.php:260 {
App\Service\PDFService->formatHtmlForGotenberg(string $html): string …
› if (!str_starts_with($imgSrc, 'data:')) {
› $base64Src = $this->convertImageToBase64($imgSrc, $siteUrl);
› $img->setAttribute('src', $base64Src);
}
/app/src/Service/PDFService.php:147 {
App\Service\PDFService->prepareHtmlWithHeadersFooters(string $html): array …
› return [
› 'content' => $this->formatHtmlForGotenberg($contentHtml),
› 'header' => $this->formatHtmlForGotenberg($headerHtml),
}
/app/src/Service/PDFService.php:92 {
App\Service\PDFService->outputPDF(string $html): string …
› {
› $htmlParts = $this->prepareHtmlWithHeadersFooters($html);
›
}
/app/src/Controller/Front/TrainingController.php:116 {
App\Controller\Front\TrainingController->pdf(Training $training, PDFService $PDFService): Response …
›
› $response = $PDFService->outputPDF($html);
›
}
/app/vendor/symfony/http-kernel/HttpKernel.php:183 {
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response …
› // call controller
› $response = $controller(...$arguments);
›
}
/app/vendor/symfony/http-kernel/HttpKernel.php:76 {
Symfony\Component\HttpKernel\HttpKernel->handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response …
› try {
› return $response = $this->handleRaw($request, $type);
› } catch (\Throwable $e) {
}
/app/vendor/symfony/http-kernel/Kernel.php: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