diff --git a/http/http_response.hpp b/http/http_response.hpp
index 2af12c9..58e047c 100644
--- a/http/http_response.hpp
+++ b/http/http_response.hpp
@@ -143,7 +143,33 @@
 
     void preparePayload()
     {
-        stringResponse->prepare_payload();
+        // This code is a throw-free equivalent to
+        // beast::http::message::prepare_payload
+        boost::optional<uint64_t> pSize = stringResponse->payload_size();
+        using boost::beast::http::status;
+        using boost::beast::http::status_class;
+        using boost::beast::http::to_status_class;
+        if (!pSize)
+        {
+            pSize = 0;
+        }
+        else
+        {
+            bool is1XXReturn = to_status_class(stringResponse->result()) ==
+                               status_class::informational;
+            if (*pSize > 0 &&
+                (is1XXReturn ||
+                 stringResponse->result() == status::no_content ||
+                 stringResponse->result() == status::not_modified))
+            {
+                BMCWEB_LOG_CRITICAL
+                    << this
+                    << " Response content provided but code was no-content or not_modified, which aren't allowed to have a body";
+                pSize = 0;
+                body().clear();
+            }
+        }
+        stringResponse->content_length(*pSize);
     }
 
     void clear()
