Hi Garry,
I wonder if the problem is with the Content-Length on the request not being updated when you replace https with http (content-length should be updated to what it was minus 1). I was thinking of response rewriting when I suggested adding an HTTP profile with chunking set to rechunk. Unfortunately, the rechunking only applies to responses being sent to the client, not requests being sent to the pool.
You could test this by seeing if it works correctly if you add a space to the replacement string (so the content length doesn't need to be changed:
when HTTP_REQUEST {
...
STREAM::expression "@https://10.104.30.55@ http://10.104.30.55@"
If this is the issue and you cannot insert a space or other filler character, I think you'd need to use HTTP::collect to collect the request payload and 'HTTP::payload replace' to update it, so the Content-Length header will be updated.
Aaron