When making a request using JsonClient or StringClient, where the server returns a redirect status (such as 301), and the Location header is a different server than the one the initial request went to, then the new request that it tries goes to the new path but on the old server, not the new one.
It looks like StringClient (around line 122) updates the path for a new request, but not other needed properties like protocol/host/port.