protected void handleOriginSuccessResponse(HttpResponse originResponse, DiscoveryResult chosenServer) {
        origin.recordSuccessResponse();
        if (originConn != null) {
            originConn.getServer().clearSuccessiveConnectionFailureCount();
        }
        int respStatus = originResponse.status().code();
        long duration = 0;
        if (currentRequestStat != null) {
            currentRequestStat.updateWithHttpStatusCode(respStatus);
            duration = currentRequestStat.duration();
        }
        if (currentRequestAttempt != null) {
            currentRequestAttempt.complete(respStatus, duration, null);
        }
        // separate nfstatus for 404 so that we can notify origins
        ByteBufUtil.touch(originResponse, "ProxyEndpoint handling successful response, request: ", zuulRequest);
        StatusCategory statusCategory =
                respStatus == 404 ? ZuulStatusCategory.SUCCESS_NOT_FOUND : ZuulStatusCategory.SUCCESS;
        zuulResponse = buildZuulHttpResponse(originResponse, statusCategory, context.getError());
        invokeNext(zuulResponse);
    }
Request is replayable on a different origin IFF
A) we have not started to send response back to the client  AND
B) we have not lost any of its body chunks
zuul-core/src/main/java/com/netflix/zuul/filters/endpoint/ProxyEndpoint.java