diff --git a/CMakeLists.txt b/CMakeLists.txt
index c050853..0b724cf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -217,6 +217,7 @@
     target_link_libraries (webtest pam)
     target_link_libraries (webtest tinyxml2)
     target_link_libraries (webtest sdbusplus)
+    target_link_libraries (webtest -lsystemd)
     target_link_libraries (webtest -lstdc++fs)
     add_test (webtest webtest "--gtest_output=xml:webtest.xml")
 
diff --git a/redfish-core/lib/service_root.hpp b/redfish-core/lib/service_root.hpp
index 62796ee..d6cf44e 100644
--- a/redfish-core/lib/service_root.hpp
+++ b/redfish-core/lib/service_root.hpp
@@ -15,6 +15,7 @@
 */
 #pragma once
 
+#include <systemd/sd-id128.h>
 #include "node.hpp"
 
 namespace redfish {
@@ -31,16 +32,16 @@
     Node::json["RedfishVersion"] = "1.1.0";
     Node::json["Links"]["Sessions"] = {
         {"@odata.id", "/redfish/v1/SessionService/Sessions"}};
-    Node::json["UUID"] =
-        app.template get_middleware<crow::PersistentData::Middleware>()
-            .system_uuid;
 
-    entityPrivileges = {{boost::beast::http::verb::get, {}},
-                        {boost::beast::http::verb::head, {}},
-                        {boost::beast::http::verb::patch, {{"ConfigureComponents"}}},
-                        {boost::beast::http::verb::put, {{"ConfigureComponents"}}},
-                        {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}},
-                        {boost::beast::http::verb::post, {{"ConfigureComponents"}}}};
+    Node::json["UUID"] = get_uuid();
+
+    entityPrivileges = {
+        {boost::beast::http::verb::get, {}},
+        {boost::beast::http::verb::head, {}},
+        {boost::beast::http::verb::patch, {{"ConfigureComponents"}}},
+        {boost::beast::http::verb::put, {{"ConfigureComponents"}}},
+        {boost::beast::http::verb::delete_, {{"ConfigureComponents"}}},
+        {boost::beast::http::verb::post, {{"ConfigureComponents"}}}};
   }
 
  private:
@@ -49,6 +50,27 @@
     res.json_value = Node::json;
     res.end();
   }
+
+  const std::string get_uuid() {
+  // If we are using a version of systemd that can get the app specific uuid,
+  // use that
+#ifdef sd_id128_get_machine_app_specific
+    std::array<char, SD_ID128_STRING_MAX> string;
+    sd_id128_t id = SD_ID128_NULL;
+
+    // This ID needs to match the one in ipmid
+    int r = sd_id128_get_machine_app_specific(
+        SD_ID128_MAKE(e0, e1, 73, 76, 64, 61, 47, da, a5, 0c, d0, cc, 64, 12,
+                      45, 78),
+        &id);
+    if (r < 0) {
+      return "00000000-0000-0000-0000-000000000000";
+    }
+    return string.data();
+#else
+    return "00000000-0000-0000-0000-000000000000";
+#endif
+  }
 };
 
 }  // namespace redfish
