diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
index ed02c40..5ea30df 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
@@ -642,7 +642,7 @@
             std::shared_ptr<persistent_data::UserSubscription> newSub =
                 it.second;
 
-            boost::urls::result<boost::urls::url> url =
+            boost::system::result<boost::urls::url> url =
                 boost::urls::parse_absolute_uri(newSub->destinationUrl);
 
             if (!url)
diff --git a/redfish-core/include/redfish_aggregator.hpp b/redfish-core/include/redfish_aggregator.hpp
index e5ad88a..5df43a6 100644
--- a/redfish-core/include/redfish_aggregator.hpp
+++ b/redfish-core/include/redfish_aggregator.hpp
@@ -80,7 +80,7 @@
         parseCount--;
     }
 
-    boost::urls::result<boost::urls::url_view> parsedUrl =
+    boost::system::result<boost::urls::url_view> parsedUrl =
         boost::urls::parse_relative_ref(
             uri.substr(serviceRootUri.size(), parseCount));
     if (!parsedUrl)
diff --git a/redfish-core/include/utils/telemetry_utils.hpp b/redfish-core/include/utils/telemetry_utils.hpp
index c5c88fa..ac1411c 100644
--- a/redfish-core/include/utils/telemetry_utils.hpp
+++ b/redfish-core/include/utils/telemetry_utils.hpp
@@ -66,7 +66,7 @@
     size_t uriIdx = 0;
     for (const std::string& uri : uris)
     {
-        boost::urls::result<boost::urls::url_view> parsed =
+        boost::system::result<boost::urls::url_view> parsed =
             boost::urls::parse_relative_ref(uri);
 
         if (!parsed)
diff --git a/redfish-core/lib/certificate_service.hpp b/redfish-core/lib/certificate_service.hpp
index 4400596..10931c4 100644
--- a/redfish-core/lib/certificate_service.hpp
+++ b/redfish-core/lib/certificate_service.hpp
@@ -505,7 +505,7 @@
     }
     BMCWEB_LOG_INFO("Certificate URI to replace: {}", certURI);
 
-    boost::urls::result<boost::urls::url> parsedUrl =
+    boost::system::result<boost::urls::url> parsedUrl =
         boost::urls::parse_relative_ref(certURI);
     if (!parsedUrl)
     {
diff --git a/redfish-core/lib/ethernet.hpp b/redfish-core/lib/ethernet.hpp
index 0f35f7e..bd44677 100644
--- a/redfish-core/lib/ethernet.hpp
+++ b/redfish-core/lib/ethernet.hpp
@@ -1872,7 +1872,7 @@
         }
         BMCWEB_LOG_INFO("Parent Interface URI: {}", parentInterfaceUri);
 
-        boost::urls::result<boost::urls::url_view> parsedUri =
+        boost::system::result<boost::urls::url_view> parsedUri =
             boost::urls::parse_relative_ref(parentInterfaceUri);
         if (!parsedUri)
         {
diff --git a/redfish-core/lib/event_service.hpp b/redfish-core/lib/event_service.hpp
index 89c2337..c1ad0d8 100644
--- a/redfish-core/lib/event_service.hpp
+++ b/redfish-core/lib/event_service.hpp
@@ -318,7 +318,7 @@
             }
         }
 
-        boost::urls::result<boost::urls::url> url =
+        boost::system::result<boost::urls::url> url =
             boost::urls::parse_absolute_uri(destUrl);
         if (!url)
         {
diff --git a/redfish-core/lib/trigger.hpp b/redfish-core/lib/trigger.hpp
index 48e348e..3388580 100644
--- a/redfish-core/lib/trigger.hpp
+++ b/redfish-core/lib/trigger.hpp
@@ -246,7 +246,7 @@
 inline std::optional<sdbusplus::message::object_path>
     getReportPathFromReportDefinitionUri(const std::string& uri)
 {
-    boost::urls::result<boost::urls::url_view> parsed =
+    boost::system::result<boost::urls::url_view> parsed =
         boost::urls::parse_relative_ref(uri);
 
     if (!parsed)
@@ -543,7 +543,7 @@
     size_t uriIdx = 0;
     for (const std::string& uriStr : *ctx.metricProperties)
     {
-        boost::urls::result<boost::urls::url_view> uri =
+        boost::system::result<boost::urls::url_view> uri =
             boost::urls::parse_relative_ref(uriStr);
         if (!uri)
         {
diff --git a/redfish-core/lib/virtual_media.hpp b/redfish-core/lib/virtual_media.hpp
index d854ee5..95cbdf1 100644
--- a/redfish-core/lib/virtual_media.hpp
+++ b/redfish-core/lib/virtual_media.hpp
@@ -128,7 +128,7 @@
  */
 inline std::string getTransferProtocolTypeFromUri(const std::string& imageUri)
 {
-    boost::urls::result<boost::urls::url_view> url =
+    boost::system::result<boost::urls::url_view> url =
         boost::urls::parse_uri(imageUri);
     if (!url)
     {
@@ -553,7 +553,7 @@
 
         return;
     }
-    boost::urls::result<boost::urls::url_view> url =
+    boost::system::result<boost::urls::url_view> url =
         boost::urls::parse_uri(*actionParams.imageUrl);
     if (!url)
     {
