diff --git a/httplib.h b/httplib.h
index bafae47..3628362 100644
--- a/httplib.h
+++ b/httplib.h
@@ -2452,6 +2452,7 @@ Server::process_request(Stream &strm, bool last_connection,
   // Check if the request URI doesn't exceed the limit
   if (reader.size() > CPPHTTPLIB_REQUEST_URI_MAX_LENGTH) {
     res.status = 414;
+    connection_close = true;
     return write_response(strm, last_connection, req, res);
   }
 
@@ -2459,6 +2460,7 @@ Server::process_request(Stream &strm, bool last_connection,
   if (!parse_request_line(reader.ptr(), req) ||
       !detail::read_headers(strm, req.headers)) {
     res.status = 400;
+    connection_close = true;
     return write_response(strm, last_connection, req, res);
   }
 
diff --git a/test/test.cc b/test/test.cc
index 71901a7..7413b22 100644
--- a/test/test.cc
+++ b/test/test.cc
@@ -530,7 +530,7 @@ protected:
         .Get("/streamed-cancel",
              [&](const Request & /*req*/, Response &res) {
                res.set_content_provider(
-                   uint64_t(-1),
+                   size_t(-1),
                    [](uint64_t /*offset*/, uint64_t /*length*/, Out out) {
                      std::string data = "data_chunk";
                      out(data.data(), data.size());