pydantic / pydantic/httpx2

httpx.ConnectError: EOF occurred in violation of protocol (_ssl.c:1131)

Open
#771 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1.5k
Forks
78
Avg merge
8h 59m
Merged PRs (30d)
24

Description

Originally opened by @jekoie on 2023-07-22 09:47:26 in encode/httpx

I try to use bellow code run httpx, but it run as error?

import httpx
r = httpx.get('https://httpbin.org/get')
print(r)

** The Error**

PS E:\test> & C:/Users/jekoi/AppData/Local/Programs/Python/Python38/python.exe e:/test/t6.py
Traceback (most recent call last):
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpcore\_exceptions.py", line 10, in map_exceptions
    yield
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpcore\_backends\sync.py", line 62, in start_tls
    raise exc
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpcore\_backends\sync.py", line 57, in start_tls
    sock = ssl_context.wrap_socket(
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\ssl.py", line 500, in wrap_socket
    return self.sslsocket_class._create(
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\ssl.py", line 1040, in _create
    self.do_handshake()
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\ssl.py", line 1309, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:1131)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpx\_transports\default.py", line 60, in map_httpcore_exceptions
    yield
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpx\_transports\default.py", line 218, in handle_request
    resp = self._pool.handle_request(req)
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpcore\_sync\connection_pool.py", line 262, in handle_request
    raise exc
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpcore\_sync\connection_pool.py", line 245, in handle_request
    response = connection.handle_request(request)
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpcore\_sync\http_proxy.py", line 271, in handle_request
    connect_response = self._connection.handle_request(
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpcore\_sync\connection.py", line 92, in handle_request
    raise exc
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpcore\_sync\connection.py", line 69, in handle_request
    stream = self._connect(request)
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpcore\_sync\connection.py", line 149, in _connect
    stream = stream.start_tls(**kwargs)
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpcore\_backends\sync.py", line 62, in start_tls
    raise exc
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\contextlib.py", line 131, in __exit__
    self.gen.throw(type, value, traceback)
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpcore\_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectError: EOF occurred in violation of protocol (_ssl.c:1131)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "e:/test/t6.py", line 3, in <module>
    r = httpx.get('https://httpbin.org/get')
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpx\_api.py", line 189, in get
    return request(
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpx\_client.py", line 814, in request
    return self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpx\_client.py", line 901, in send
    response = self._send_handling_auth(
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpx\_client.py", line 929, in _send_handling_auth
    response = self._send_handling_redirects(
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpx\_client.py", line 966, in _send_handling_redirects
    response = self._send_single_request(request)
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpx\_client.py", line 1002, in _send_single_request
    response = transport.handle_request(request)
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpx\_transports\default.py", line 218, in handle_request
    resp = self._pool.handle_request(req)
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\contextlib.py", line 131, in __exit__
    self.gen.throw(type, value, traceback)
  File "C:\Users\jekoi\AppData\Local\Programs\Python\Python38\lib\site-packages\httpx\_transports\default.py", line 77, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: EOF occurred in violation of protocol (_ssl.c:1131)
PS E:\test>
PS E:\test> pip show httpx
Name: httpx
Version: 0.24.1
Summary: The next generation HTTP client.
Home-page:
Author:
Author-email: Tom Christie <tom@tomchristie.com>
License:
Location: c:\users\jekoi\appdata\local\programs\python\python38\lib\site-packages
Requires: certifi, httpcore, idna, sniffio
Required-by:
PS E:\test> 

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start from the httpx.get entry point and trace the reported path through httpcore's sync connection, proxy, and TLS handling. Reproduce the request with the shown Python 3.8 and httpx 0.24.1 setup, then determine whether the failure is reproducible in the project rather than environment-specific. Done would require a confirmed cause and a test or documented resolution, but the issue does not currently define either.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.