diff --git a/supervisor/api/ingress.py b/supervisor/api/ingress.py index 0f761e06e..5b86c880e 100644 --- a/supervisor/api/ingress.py +++ b/supervisor/api/ingress.py @@ -164,13 +164,18 @@ class APIIngress(CoreSysAttributes): url = self._create_url(addon, path) source_header = _init_header(request, addon) + # Passing the raw stream breaks requests for some webservers + # since we just need it for POST requests really, for all other methods + # we read the bytes and pass that to the request to the add-on + data = request.content if request.method == "POST" else await request.read() + async with self.sys_websession.request( request.method, url, headers=source_header, params=request.query, allow_redirects=False, - data=request.content, + data=data, timeout=ClientTimeout(total=None), ) as result: headers = _response_header(result)