diff --git a/images/horizon/Dockerfile b/images/horizon/Dockerfile
index 79e73da..b82f6ae 100644
--- a/images/horizon/Dockerfile
+++ b/images/horizon/Dockerfile
@@ -4,7 +4,7 @@
 
 FROM openstack-venv-builder AS build
 # renovate: name=openstack/horizon repo=https://opendev.org/openstack/horizon.git branch=unmaintained/2023.1
-ARG HORIZON_GIT_REF=b467683b1ed2aab4e38fe2cb2ac7ae5500e5d5c0
+ARG HORIZON_GIT_REF=d205ff09bed65b08960c3578434060eac9273fba
 ADD --keep-git-dir=true https://opendev.org/openstack/horizon.git#${HORIZON_GIT_REF} /src/horizon
 RUN git -C /src/horizon fetch --unshallow
 # renovate: name=openstack/designate-dashboard repo=https://opendev.org/openstack/designate-dashboard.git branch=unmaintained/2023.1
diff --git a/images/horizon/patches/horizon/0001-Fixing-Incorrect-URL-when-browsing-Swift-containers.patch b/images/horizon/patches/horizon/0001-Fixing-Incorrect-URL-when-browsing-Swift-containers.patch
deleted file mode 100644
index 58eafd8..0000000
--- a/images/horizon/patches/horizon/0001-Fixing-Incorrect-URL-when-browsing-Swift-containers.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 4aa347fe196b7b18ff0bf5f4d4f076a6c14cf12e Mon Sep 17 00:00:00 2001
-From: jeremy-boyle <jeremyboylet@gmail.com>
-Date: Sat, 24 Jun 2023 16:59:11 +0000
-Subject: [PATCH] Fixing Incorrect URL when browsing Swift containers
-
-This patch fixes a bug identified in the code that generates the URL for
-the Swift container object. The bug caused the forward slashes (/) in the
-folder parameter to be encoded as %2F instead of being included as '/' in the
-resulting URL.
-
-To resolve this issue, the code has been updated by adding a replace() method
-to replace the %2F sequences with forward slashes. The updated code ensures
-that the URL generated for the folder parameter contains the correct forward
-slash (/) representation.
-
-Closes-Bug: #2009724
-Signed-off-by: jeremy-boyle <jeremyboylet@gmail.com>
-
-Change-Id: I5837e74ddcc71cda6b4686e586dbb8b1386a9cd3
----
- .../static/dashboard/project/containers/objects.controller.js  | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/openstack_dashboard/dashboards/project/static/dashboard/project/containers/objects.controller.js b/openstack_dashboard/dashboards/project/static/dashboard/project/containers/objects.controller.js
-index 55262a1fa..c14128cbf 100644
---- a/openstack_dashboard/dashboards/project/static/dashboard/project/containers/objects.controller.js
-+++ b/openstack_dashboard/dashboards/project/static/dashboard/project/containers/objects.controller.js
-@@ -60,7 +60,8 @@
-     ctrl.containerURL = containerRoute + encodeURIComponent($routeParams.container) +
-       ctrl.model.DELIMETER;
-     if (angular.isDefined($routeParams.folder)) {
--      ctrl.currentURL = ctrl.containerURL + encodeURIComponent($routeParams.folder) +
-+      ctrl.currentURL = ctrl.containerURL +
-+        encodeURIComponent($routeParams.folder).replace(/%2F/g, '/') +
-         ctrl.model.DELIMETER;
-     } else {
-       ctrl.currentURL = ctrl.containerURL;
--- 
-2.34.1
diff --git a/images/horizon/patches/horizon/0001-normalize-url-join-for-placement.patch b/images/horizon/patches/horizon/0001-normalize-url-join-for-placement.patch
new file mode 100644
index 0000000..963b5d2
--- /dev/null
+++ b/images/horizon/patches/horizon/0001-normalize-url-join-for-placement.patch
@@ -0,0 +1,27 @@
+
+From 5093c4101edaaceaa258f1586b5f2a99dc101f71 Mon Sep 17 00:00:00 2001
+From: chung00-lee <chung00.lee@samsung.com>
+Date: Thu, 21 Nov 2024 17:15:45 +0900
+Subject: [PATCH] Replace placement request path
+Remove '//' in the placement request path.
+Closes-Bug: #2089223
+Change-Id: I2646ac3f82c7e1ab01faf1626bd8aa8046d66d0d
+---
+diff --git a/openstack_dashboard/api/placement.py b/openstack_dashboard/api/placement.py
+index f2cf5ae..94ef4b9 100644
+--- a/openstack_dashboard/api/placement.py
++++ b/openstack_dashboard/api/placement.py
+@@ -55,8 +55,11 @@
+ 
+ def _get_json(request, path):
+     adapter = make_adapter(request)
+-    uri = base.url_for(request, 'placement') + path
+-    response, body = adapter.get(uri)
++
++    base_uri = base.url_for(request, 'placement')
++    new_uri = base_uri.rstrip('/') + '/' + path.lstrip('/')
++
++    response, body = adapter.get(new_uri)
+     return response.json()
+ 
+ 
diff --git a/images/horizon/patches/horizon/0002-normalize-url-join-for-placement.patch b/images/horizon/patches/horizon/0002-normalize-url-join-for-placement.patch
deleted file mode 100644
index eb377df..0000000
--- a/images/horizon/patches/horizon/0002-normalize-url-join-for-placement.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 05fc8ddfd7fb9f283a51f35ec27fcb12d0baaf15 Mon Sep 17 00:00:00 2001
-From: okozachenko <okozachenko1203@gmail.com>
-Date: Tue, 23 Jul 2024 23:28:28 +1000
-Subject: [PATCH] fix: normalize url join for placement uris
-
-Change-Id: Idcf00a91c1545e9693bb2e73e424958c5bb75e9c
----
-
-diff --git a/openstack_dashboard/api/placement.py b/openstack_dashboard/api/placement.py
-index 60c07d4..9ec0794 100644
---- a/openstack_dashboard/api/placement.py
-+++ b/openstack_dashboard/api/placement.py
-@@ -10,6 +10,8 @@
- #    License for the specific language governing permissions and limitations
- #    under the License.
- 
-+from urllib.parse import urljoin
-+
- from keystoneauth1 import adapter
- from keystoneauth1 import identity
- from keystoneauth1 import session
-@@ -46,7 +48,11 @@
- 
- def _get_json(request, path):
-     adapter = make_adapter(request)
--    uri = base.url_for(request, 'placement') + path
-+    base_uri = base.url_for(request, 'placement')
-+    if not base_uri.endswith('/'):
-+        base_uri += '/'
-+    normalized_path = path.lstrip('/')
-+    uri = urljoin(base_uri, normalized_path)
-     response, body = adapter.get(uri)
-     return response.json()
- 
-diff --git a/releasenotes/notes/fix-placement-uri-generation-3b7586c163189608.yaml b/releasenotes/notes/fix-placement-uri-generation-3b7586c163189608.yaml
-new file mode 100644
-index 0000000..1531baa
---- /dev/null
-+++ b/releasenotes/notes/fix-placement-uri-generation-3b7586c163189608.yaml
-@@ -0,0 +1,3 @@
-+---
-+fixes:
-+  - Use urljoin for normalized uri generation for placement apis
