Ok. the solution has been found. since the whole infra was done in an enterprise setup, all the outbound call was going through a proxy.
Speech container itself runs multiple services inside docker and localhost outbound call was also going through proxy. Which didn't have http 2.0 compatibility.
The fix was to not use proxy when call is 127.0.0.1 aka localhost. We configured this through k8s yaml.