I found this question while struggling: Is it OK to pass a stream around to multiple methods?. The general consensus is that it is OK as long as the stream is guarded and any new consumer of the stream reset their position to zero.
My scenario is retrieving a file from an API and then ultimately streaming that file as a download through an ASP.NET controller. How would the stream be cleared if it's just passed as a the response?