diff --git a/http/http2_connection.hpp b/http/http2_connection.hpp
index be73991..35b192d 100644
--- a/http/http2_connection.hpp
+++ b/http/http2_connection.hpp
@@ -234,7 +234,7 @@
         if (reqReader)
         {
             boost::beast::error_code ec;
-            reqReader->finish(ec);
+            bmcweb::HttpBody::reader::finish(ec);
             if (ec)
             {
                 BMCWEB_LOG_CRITICAL("Failed to finalize payload");
diff --git a/http/utility.hpp b/http/utility.hpp
index 494b734..0cddb1c 100644
--- a/http/utility.hpp
+++ b/http/utility.hpp
@@ -314,27 +314,18 @@
     return true;
 }
 
-namespace details
-{
-inline boost::urls::url appendUrlPieces(
-    boost::urls::url& url, const std::initializer_list<std::string_view> args)
-{
-    for (std::string_view arg : args)
-    {
-        url.segments().push_back(arg);
-    }
-    return url;
-}
-
-} // namespace details
-
 class OrMorePaths
 {};
 
 template <typename... AV>
-inline void appendUrlPieces(boost::urls::url& url, const AV... args)
+inline void appendUrlPieces(boost::urls::url& url, AV&&... args)
 {
-    details::appendUrlPieces(url, {args...});
+    // Unclear the correct fix here.
+    // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-array-to-pointer-decay)
+    for (const std::string_view arg : {args...})
+    {
+        url.segments().push_back(arg);
+    }
 }
 
 namespace details
