argilla-io / argilla

Argilla is a collaboration tool for AI engineers and domain experts to build high-quality datasets
https://docs.argilla.io
Apache License 2.0
3.99k stars 377 forks source link

[BUG-python/deployment] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate #5548

Open xiajing10 opened 1 month ago

xiajing10 commented 1 month ago

Describe the bug In Argilla version 2+, httpx.Client is created by rg.Argilla class. However, with verify=False is added, still get Error ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1000)

After investigation, verify parameter is not passed to httpx.Client through Argilla class ( from v2.2.0), both verify=False and verify='some cert path' fail.

Stacktrace and Code to create the bug

import argilla as rg
client = rg.Argilla(api_url=<argilla_service_https_url>, api_key=<api_key>, verify=False)

Tried to test with create_http_client function

from argilla._api._http._client import create_http_client
client = create_http_client(api_url=<argilla_service_https_url>, api_key=<api_key>, verify=False)
print(client._transport._pool._ssl_context.verify_mode) 

output 2

Problem is from line

transport=httpx.HTTPTransport(retries=retries)

in create_http_client

After comment this line or add verify=client_args.pop("verify", True) into httpx.HTTPTransport, output of print(client._transport._pool._ssl_context.verify_mode) turns to 0

Expected behavior Connection to https url success with rg.Argilla(..., verify=False)

Environment:

xiajing10 commented 1 month ago

Tested Argilla version 2.1.0 and verify=False works fine.

xiajing10 commented 2 weeks ago

Tested Argilla version 2.1.0 and verify=False works fine.

Any update on this issue? It still fails in any version after 2.2.0. I'm blocked because I cannot use Dataset.progress function which exists after v2.2.0.

It is just one line update in code, I can create a pull request if that is okay?