From 420ee15759b7cfee8f78fc336844c6658fa8f7bf Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 14 Jul 2026 19:23:48 +0200 Subject: [PATCH 1/3] Improve error handling --- .../middlewares/html-template.middleware.ts | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/apps/api/src/middlewares/html-template.middleware.ts b/apps/api/src/middlewares/html-template.middleware.ts index 325f64eaa..607dfe41d 100644 --- a/apps/api/src/middlewares/html-template.middleware.ts +++ b/apps/api/src/middlewares/html-template.middleware.ts @@ -97,20 +97,29 @@ export class HtmlTemplateMiddleware implements NestMiddleware { private indexHtmlMap: { [languageCode: string]: string } = {}; public constructor(private readonly i18nService: I18nService) { - try { - this.indexHtmlMap = SUPPORTED_LANGUAGE_CODES.reduce( - (map, languageCode) => ({ - ...map, - [languageCode]: readFileSync( - join(__dirname, '..', 'client', languageCode, 'index.html'), - 'utf8' - ) - }), - {} - ); - } catch (error) { - this.logger.error('Failed to initialize index HTML map', error); + if (!environment.production) { + return; } + + this.indexHtmlMap = SUPPORTED_LANGUAGE_CODES.reduce((map, languageCode) => { + const indexHtmlPath = join( + __dirname, + '..', + 'client', + languageCode, + 'index.html' + ); + + try { + map[languageCode] = readFileSync(indexHtmlPath, 'utf8'); + } catch { + this.logger.warn( + `Skipping language '${languageCode}': ${indexHtmlPath} not found` + ); + } + + return map; + }, {}); } public use(request: Request, response: Response, next: NextFunction) { From edbbb0a4632bf52118faeb50b59dd3a3ddd621c8 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 14 Jul 2026 19:24:09 +0200 Subject: [PATCH 2/3] Update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c3caf990..5e8fe76ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Set the change detection strategy to `OnPush` in the registration page - Set the change detection strategy to `OnPush` in the resources pages +### Fixed + +- Improved the error handling in the `HtmlTemplateMiddleware` + ## 3.26.0 - 2026-07-14 ### Added From 2f635387da73b774e11bcb292047b5eeffadcacd Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 14 Jul 2026 19:28:54 +0200 Subject: [PATCH 3/3] Improve error handling --- apps/api/src/middlewares/html-template.middleware.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/api/src/middlewares/html-template.middleware.ts b/apps/api/src/middlewares/html-template.middleware.ts index 607dfe41d..bdace3402 100644 --- a/apps/api/src/middlewares/html-template.middleware.ts +++ b/apps/api/src/middlewares/html-template.middleware.ts @@ -127,7 +127,8 @@ export class HtmlTemplateMiddleware implements NestMiddleware { let languageCode = path.substr(1, 2); if ( - !(SUPPORTED_LANGUAGE_CODES as readonly string[]).includes(languageCode) + !(SUPPORTED_LANGUAGE_CODES as readonly string[]).includes(languageCode) || + !this.indexHtmlMap[languageCode] ) { languageCode = DEFAULT_LANGUAGE_CODE; }