My service is using akka-http’s conditional cache directive. The Etag/Last Updated value is received from one of the downstream services along with a stream for response body.
I’m facing an issue that when the user receives 304 status code from the server the Source for the response body is never piped to a Sink and therefore never properly consumed.
What is the recommended way of closing dangling streams after conditional directive handles the response?
Thanks for the report, @bandreiev. That sounds like a bug, can you file an issue / PR? I think in complete403 and complete412 of CacheConditionDirectives.scala we should make sure that the original response is discarded.
That said, having a quick look at the code, I’m not sure it is intended that the inner route is even run? Can you post a code snippet that demonstrates the problem?
We need to send the request to the downstream service to figure out the etag - and on success path the downstream response is a significant portion of our service response.