Fix StreamConsumed error caused by response stream consumption in Ret… #2268
+17
−26
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
User description
Description
What
This PR fixes a bug in the
RetryTransport
class where the_log_response_size_async
method was consuming the HTTPX response stream usingawait response.aread()
while logging.This caused downstream consumers (such as pagination handlers) to raise
StreamConsumed
errors when attempting to access the already-read stream.Why
The response body was being read prematurely during logging, making it unavailable for the actual consumer of the response. This broke async pagination and retry flows in integrations that depend on reusing the same response object for subsequent reads.
How
await response.aread()
inside_log_response_size_async
.Content-Length
header where available.Type of change
Please leave one option from the following and delete the rest:
All tests should be run against the port production environment(using a testing org).
Core testing checklist
Integration testing checklist
examples
folder in the integration directory.Preflight checklist
Screenshots
Include screenshots from your environment showing how the resources of the integration will look.
API Documentation
Provide links to the API documentation used for this integration.
PR Type
Bug fix
Description
Fix StreamConsumed error in RetryTransport response logging
Remove stream consumption from response size logging methods
Use Content-Length header only for size logging
Skip logging when Content-Length header is missing
Diagram Walkthrough
File Walkthrough
retry.py
Fix stream consumption in response logging
port_ocean/helpers/retry.py
await response.aread()
andresponse.read()
calls from loggingmethods
CHANGELOG.md
Add changelog entry for bug fix
CHANGELOG.md
pyproject.toml
Version bump to 0.28.13
pyproject.toml