diff --git a/packages/react-scripts/layout/views/layout.ejs b/packages/react-scripts/layout/views/layout.ejs
index 39b2a49a20..5b5878187f 100644
--- a/packages/react-scripts/layout/views/layout.ejs
+++ b/packages/react-scripts/layout/views/layout.ejs
@@ -19,7 +19,16 @@
<% if (typeof manifestJsonExists === 'undefined' || manifestJsonExists) { %>
-
+ <%
+ // Construct manifest URL using URL constructor to extract relative path with query params
+ // Supports both normal app paths and appPathOverride for special routing scenarios
+ // e.g., http://localhost:5006/africa?lang=en becomes /africa/manifest.json?lang=en
+ var basePath = typeof appPathOverride !== 'undefined' ? appPathOverride : appPath('');
+ var url = new URL(basePath);
+ url.pathname = url.pathname.replace(/\/$/, '') + '/manifest.json';
+ var manifestUrl = url.pathname + url.search;
+ %>
+
<% } %>