diff --git a/include/authorization.hpp b/include/authorization.hpp
index e32d9ad..9e344d8 100644
--- a/include/authorization.hpp
+++ b/include/authorization.hpp
@@ -78,9 +78,10 @@
     // needed.
     // This whole flow needs to be revisited anyway, as we can't be
     // calling directly into pam for every request
+    std::string unsupportedClientId = "";
     return persistent_data::SessionStore::getInstance().generateUserSession(
-        user, persistent_data::PersistenceType::SINGLE_REQUEST,
-        isConfigureSelfOnly, clientIp.to_string());
+        user, clientIp.to_string(), unsupportedClientId,
+        persistent_data::PersistenceType::SINGLE_REQUEST, isConfigureSelfOnly);
 }
 #endif
 
diff --git a/include/login_routes.hpp b/include/login_routes.hpp
index 6879de0..d400559 100644
--- a/include/login_routes.hpp
+++ b/include/login_routes.hpp
@@ -136,12 +136,14 @@
                 }
                 else
                 {
+                    std::string unsupportedClientId = "";
                     auto session =
                         persistent_data::SessionStore::getInstance()
                             .generateUserSession(
-                                username,
+                                username, req.ipAddress.to_string(),
+                                unsupportedClientId,
                                 persistent_data::PersistenceType::TIMEOUT,
-                                isConfigureSelfOnly, req.ipAddress.to_string());
+                                isConfigureSelfOnly);
 
                     if (looksLikePhosphorRest)
                     {
diff --git a/include/sessions.hpp b/include/sessions.hpp
index 85d8ecc..a448b24 100644
--- a/include/sessions.hpp
+++ b/include/sessions.hpp
@@ -210,10 +210,10 @@
 {
   public:
     std::shared_ptr<UserSession> generateUserSession(
-        const std::string_view username,
+        const std::string_view username, const std::string_view clientIp,
+        const std::string_view clientId,
         PersistenceType persistence = PersistenceType::TIMEOUT,
-        bool isConfigureSelfOnly = false, const std::string_view clientId = "",
-        const std::string_view clientIp = "")
+        bool isConfigureSelfOnly = false)
     {
         // TODO(ed) find a secure way to not generate session identifiers if
         // persistence is set to SINGLE_REQUEST
