Skip to content

"The stream was already consumed." #508

Description

@keiserS

Bug Report

Overview

When Debugging is enabled, the HTTP stream is read once again, and because of that, it throws an exception: The stream was already consumed.

Image

To Reproduce

Steps to reproduce the behavior:
I used the same console app, which I have already given in the previous report.

Expected behavior

to dump whatever was supposed to.

Resolution proposal

Add the following lines at the BaseEndpointExtension ln:37

            if (baseEndpoint.EnableDebug)  // just before ReadAsStreamAsync(.. this will enable multiple reads of the stream.
            {
                await response.Content.LoadIntoBufferAsync().ConfigureAwait(false);
            }
            await using var stream = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);

SS:

Image

Additional context

   at System.Net.Http.HttpConnectionResponseContent.ConsumeStream()
   at System.Net.Http.HttpConnectionResponseContent.<<SerializeToStreamAsync>g__Impl|6_0>d.MoveNext()
   at System.Net.Http.HttpContent.<LoadIntoBufferAsyncCore>d__63.MoveNext()
   at System.Net.Http.HttpContent.<WaitAndReturnAsync>d__82`2.MoveNext()
   at OpenAI.Extensions.ResponseExtensions.<ReadAsStringAsync>d__18.MoveNext() in \OpenAI-DotNet\OpenAI-DotNet\Extensions\ResponseExtensions.cs:line 151
   at OpenAI.Extensions.ResponseExtensions.<CheckResponseAsync>d__15.MoveNext() in \OpenAI-DotNet\OpenAI-DotNet\Extensions\ResponseExtensions.cs:line 139
   at OpenAI.Extensions.BaseEndpointExtensions.<StreamEventsAsync>d__6.MoveNext() in \OpenAI-DotNet\OpenAI-DotNet\Extensions\BaseEndpointExtensions.cs:line 109
   at OpenAI.Extensions.BaseEndpointExtensions.<StreamEventsAsync>d__6.MoveNext() in \OpenAI-DotNet\OpenAI-DotNet\Extensions\BaseEndpointExtensions.cs:line 112
   at OpenAI.Responses.ResponsesEndpoint.<StreamResponseAsync>d__7.MoveNext() in \OpenAI-DotNet\OpenAI-DotNet\Responses\ResponsesEndpoint.cs:line 125
   at OpenAI.Responses.ResponsesEndpoint.<CreateModelResponseAsync>d__5.MoveNext() in \OpenAI-DotNet\OpenAI-DotNet\Responses\ResponsesEndpoint.cs:line 69
   at Program.<Main>d__4.MoveNext() in \ConsoleTestApp\Program.cs:line 212

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions