Kong not sending base64 encoded body data to upstream

Hello,

We have been using the Kong API gateway and everything seems fine except kong is not transferring a PATCH request to an upstream server if there is a base64 encoded big-sized data in JSON payload. It used to work last year and stopped working suddenly and always returns 500 now. There is no incoming request I see related to this PATCH request on the upstream server. It works as soon as I remove the base64-encoded data field from JSON. So, not sure if I need to add any plugins or settings. I tried adding the " Request Size Limiting" plugin, thought maybe it is not allowing that big content-length and set it to 25000 MB, and still not working.
Any suggestions plz?

Regards
Baljit

Hello.
We have a same issuer.

Kubernetes version:
Server Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.8-gke.1067004", GitCommit:"6f460c12ad45abb234c18ec4f0ea335a1203c415", GitTreeState:"clean", BuildDate:"2024-01-04T22:48:32Z", GoVersion:"go1.20.11 X:boringcrypto", Compiler:"gc", Platform:"linux/amd64"}

kong helm deploy
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION kong-infra kong-infra 18 2024-03-21 15:37:38.294264512 -0300 -03 deployed kong-2.38.0 3.6

kong version
$ kong version 3.6.1

Before the kong implementation, we use a nginx as a API Gateway, and the upload biggest base64 files to internal microservice with no issues.

This kubernetes cluster have a minio deploy in other namespace. Both minio and internal microservices publish your services using kong API Gateway.
The minio api can transfer big files ( > 700mb ) with no problem.

Using minio, we dont need to convert files to base64, but for this microservice we need. The only whay to upload files on this microservice is converting the file to base64.

When we try to transfer a small files, like a 50Mb, using a internal microservices API that need to
convert this file in a base64 before the transfer, we received a “500 Internal Server Error”

responde header:
{'Content-Type': 'application/json', 'Content-Length': '174', 'Connection': 'keep-alive', 'date': 'Sun, 24 Mar 2024 15:06:00 GMT', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block', 'cache-control': 'no-cache, no-store, max-age=0, must-revalidate', 'pragma': 'no-cache', 'expires': '0', 'x-frame-options': 'DENY', 'access-control-allow-methods': 'GET, PUT, POST, PATCH, DELETE, OPTIONS', 'access-control-max-age': '3600', 'access-control-allow-headers': '*', 'access-control-allow-origin': '*', 'X-Kong-Upstream-Latency': '4844', 'X-Kong-Proxy-Latency': '7607', 'Via': 'kong/3.6.1', 'X-Kong-Request-Id': 'b20b892c2f1f482e1f9cd161c302770a'}
error code
500
status code
Internal Server Error
python responde keys
dict_keys(['timestamp', 'path', 'status', 'error', 'requestId'])

We try a lot of env-variables and annotations. We don’t believe that the problem is a timeout or body size.
Please, cold someone help us?