diff --git a/pkg/server/service/loadbalancer/mirror/mirror.go b/pkg/server/service/loadbalancer/mirror/mirror.go
index 212d88731..bd7142394 100644
--- a/pkg/server/service/loadbalancer/mirror/mirror.go
+++ b/pkg/server/service/loadbalancer/mirror/mirror.go
@@ -204,7 +204,7 @@ func newReusableRequest(req *http.Request, maxBodySize int64) (*reusableRequest,
 	if req == nil {
 		return nil, nil, errors.New("nil input request")
 	}
-	if req.Body == nil {
+	if req.Body == nil || req.ContentLength == 0 {
 		return &reusableRequest{req: req}, nil, nil
 	}
 
diff --git a/pkg/server/service/loadbalancer/mirror/mirror_test.go b/pkg/server/service/loadbalancer/mirror/mirror_test.go
index a23b1d9fd..eda49a960 100644
--- a/pkg/server/service/loadbalancer/mirror/mirror_test.go
+++ b/pkg/server/service/loadbalancer/mirror/mirror_test.go
@@ -243,9 +243,22 @@ func TestCloneRequest(t *testing.T) {
 		req, err := http.NewRequest(http.MethodPost, "/", buf)
 		assert.NoError(t, err)
 
-		_, expectedBytes, err := newReusableRequest(req, 20)
+		rr, expectedBytes, err := newReusableRequest(req, 20)
 		assert.NoError(t, err)
 		assert.Nil(t, expectedBytes)
+		assert.Len(t, rr.body, 10)
+	})
+
+	t.Run("valid GET case with maxBodySize", func(t *testing.T) {
+		buf := bytes.NewBuffer([]byte{})
+
+		req, err := http.NewRequest(http.MethodGet, "/", buf)
+		assert.NoError(t, err)
+
+		rr, expectedBytes, err := newReusableRequest(req, 20)
+		assert.NoError(t, err)
+		assert.Nil(t, expectedBytes)
+		assert.Len(t, rr.body, 0)
 	})
 
 	t.Run("no request given", func(t *testing.T) {