Fixes for encode/httpx
Verified fixes and incident notes extracted from GitHub Issues for encode/httpx.
Repository
encode / httpx
Updated: 2026-02-13
- The code in the document does not work
- Specified timeout not enforced (using a proxy)
- Using a Client with a proxy to plain http endpoints returns 200 for the first, and 404 for any others.
- `response.aclose()` raises httpcore errors, not HTTPError
- Too much data for declared Content-Length when passing string with non-ascii characters via files parameter
- environ["SERVER_PORT"] can't be "None"
- Bug with merging base_url with relative path if colon present in path
- Use the existing runloop for sync calls in async handler
- Erroneous Infinite Redirect Loop detected
- HTTP/2 connections are always active within ConnectionPool
- Concurrency backends vs AnyIO
- Can't handle URLs with @ character in userinfo section
- h11._util.LocalProtocolError: Too little data for declared Content-Length
- Client middleware API
- Query params should support list-of-strings values.
- Public middleware API
- Fine-tuning timeouts from the default timeout config
- Passing 'timeout=None' should always result in no timeout
- AttributeError: module 'rfc3986.api' has no attribute 'iri_reference'
- Timeout from ConnectionPool on number of concurrent requests larger than max_connections
- `params` overrides query string in url
- DecodingError with zlib-compressed responses
- Transport API
- When using httpx.Client with proxies, authentication fails
- Too many open files if keep changing proxy
- base_url strips relative path
- Sync client fails on ASGI apps with unhelpful traceback
- Concurrent streaming of request and response
- BoundedSemaphore error when using proxies with async client
- Clearing authorization at the request level.
- Content-Length header is missing in POST/DELETE/PUT/PATCH requests without body
- 0.13: some `httpcore` exceptions are missing from top level package
- ASGI requests are routed through proxy
- Should HTTPError be a base class for RequestError and HTTPStatusError?
- Supporting async auth flows.
- Response cookies are not ingested properly in 0.14.0
- User-provided Content-Length header is missing from streaming requests
- Auth fails for responses that include multiple WWW-Authenticate headers.
- auth doesn't seem to be used in Client.stream
- Confusing error messages when passing in the wrong URL type
- Async client does not close underlying stream thus leaving connection active which leads to hitting pool limit
- Path encoding broken for non-ASCII in WSGI mode
- Cookies are not sent after redirect (even on same origin)
- Reconsider UNSET?
- Cannot request resources with paths that include a mix of path separator slashes and URL-encoded slashes
- Customize Keep-Alive timeout
- HTTPS proxies support
- Form-encoded data with `None` as the value gets passed as string "None"
- When using proxy the request downgrades to HTTP/1
- Switch to explicit typing.Optional throughout
- LineDecoder is accidentally quadratic: iter_lines() seems to hang forever
- Document the `extensions` API.
- Reverting #2354
- add more type checking in params/form-data
- 0.27.0: replacing `app=app` with `transport=ASGITransport(app)` doesn't type check