if the protocol is HTTP/1.1 and there is no content-length header, but the body has already been Chunked encoded (such as via Plack::Middleware::Chunked), then an extra 'Transfer-Encoding' header is added to @headers and the body ends up being chunk encoded twice.
PSGI applications usually should not deal with Transfer-encoding, but I will accept a patch if it's there.
Just sent you a patch.
In my case it is a Mojolicious app, that can run standalone, with a Mojo server or with PSGI.
This app already generates chunked output, which breaks under Starman, for example.