private SocketAddress remoteAddress(ChannelHandlerContext ctx) {
        return firstNonNull(ctx.channel().remoteAddress(), remoteAddress);
    }
{@code channel().remoteAddress()} can return {@code null} if the connection is closed
before {@code channel().remoteAddress()} is called which caches the address in it.
core/src/main/java/com/linecorp/armeria/client/HttpClientPipelineConfigurator.java