ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)
Attempting to chat the websocket refuses to connect due to ssl cert error. I confirmed certifi was installed and updated.
Is this a bug or a feature?
[ x] Bug
[ ] Feature
Steps to Reproduce
env:
OPENAI_API_KEY=
verba start
use chat box , websocket disconnects
Additional context
✘ WebSocket Error: Error communicating with OpenAI
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/connector.py", line 1025, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "uvloop/loop.pyx", line 2084, in create_connection
File "uvloop/loop.pyx", line 2079, in uvloop.loop.Loop.create_connection
File "uvloop/sslproto.pyx", line 517, in uvloop.loop.SSLProtocol._on_handshake_complete
File "uvloop/sslproto.pyx", line 499, in uvloop.loop.SSLProtocol._do_handshake
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/ssl.py", line 917, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/openai/api_requestor.py", line 668, in arequest_raw
result = await session.request(**request_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/client.py", line 581, in _request
conn = await self._connector.connect(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/connector.py", line 544, in connect
proto = await self._create_connection(req, traces, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/connector.py", line 944, in _createconnection
, proto = await self._create_direct_connection(req, traces, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/connector.py", line 1257, in _create_direct_connection
raise last_exc
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/connector.py", line 1226, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/connector.py", line 1027, in _wrap_create_connection
raise ClientConnectorCertificateError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host api.openai.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)')]
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/goldenverba/server/api.py", line 179, in websocket_generate_stream
async for chunk in manager.generate_stream_answer(
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/goldenverba/verba_manager.py", line 662, in generate_stream_answer
async for result in self.generator_manager.generators[
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/goldenverba/components/generation/GPT4Generator.py", line 71, in generate_stream
completion = await openai.ChatCompletion.acreate(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/openai/api_resources/chat_completion.py", line 45, in acreate
return await super().acreate(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/openai/api_resources/abstract/engine_apiresource.py", line 217, in acreate
response, , api_key = await requestor.arequest(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/openai/api_requestor.py", line 372, in arequest
result = await self.arequest_raw(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/openai/api_requestor.py", line 685, in arequest_raw
raise error.APIConnectionError("Error communicating with OpenAI") from e
openai.error.APIConnectionError: Error communicating with OpenAI
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", line 240, in run_asgi
result = await self.app(self.scope, self.asgi_receive, self.asgi_send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 69, in call
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/fastapi/applications.py", line 292, in call
await super().call(scope, receive, send)
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/applications.py", line 122, in call
await self.middleware_stack(scope, receive, send)
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 149, in call
await self.app(scope, receive, send)
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/middleware/cors.py", line 75, in call
await self.app(scope, receive, send)
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 79, in call
raise exc
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 68, in call
await self.app(scope, receive, sender)
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in call
raise e
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in call
await self.app(scope, receive, send)
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/routing.py", line 718, in call
await route.handle(scope, receive, send)
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/routing.py", line 341, in handle
await self.app(scope, receive, send)
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/routing.py", line 82, in app
await func(session)
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 324, in app
await dependant.call(values)
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/goldenverba/server/api.py", line 193, in websocket_generate_stream
await websocket.send_json(
File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/websockets.py", line 171, in send_json
text = json.dumps(data, separators=(",", ":"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/init.py", line 238, in dumps
kw).encode(obj)
^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 200, in encode
chunks = self.iterencode(o, _one_shot=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 258, in iterencode
return _iterencode(o, 0)
^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 180, in default
raise TypeError(f'Object of type {o.class.name} '
TypeError: Object of type APIConnectionError is not JSON serializable
Description
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)
Attempting to chat the websocket refuses to connect due to ssl cert error. I confirmed certifi was installed and updated.
Is this a bug or a feature?
Steps to Reproduce
env: OPENAI_API_KEY=
verba start
use chat box , websocket disconnects
Additional context
✘ WebSocket Error: Error communicating with OpenAI ERROR: Exception in ASGI application Traceback (most recent call last): File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/connector.py", line 1025, in _wrap_create_connection return await self._loop.create_connection(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "uvloop/loop.pyx", line 2084, in create_connection File "uvloop/loop.pyx", line 2079, in uvloop.loop.Loop.create_connection File "uvloop/sslproto.pyx", line 517, in uvloop.loop.SSLProtocol._on_handshake_complete File "uvloop/sslproto.pyx", line 499, in uvloop.loop.SSLProtocol._do_handshake File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/ssl.py", line 917, in do_handshake self._sslobj.do_handshake() ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/openai/api_requestor.py", line 668, in arequest_raw result = await session.request(**request_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/client.py", line 581, in _request conn = await self._connector.connect( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/connector.py", line 544, in connect proto = await self._create_connection(req, traces, timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/connector.py", line 944, in _createconnection , proto = await self._create_direct_connection(req, traces, timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/connector.py", line 1257, in _create_direct_connection raise last_exc File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/connector.py", line 1226, in _create_direct_connection transp, proto = await self._wrap_create_connection( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/aiohttp/connector.py", line 1027, in _wrap_create_connection raise ClientConnectorCertificateError(req.connection_key, exc) from exc aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host api.openai.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)')]
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/goldenverba/server/api.py", line 179, in websocket_generate_stream async for chunk in manager.generate_stream_answer( File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/goldenverba/verba_manager.py", line 662, in generate_stream_answer async for result in self.generator_manager.generators[ File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/goldenverba/components/generation/GPT4Generator.py", line 71, in generate_stream completion = await openai.ChatCompletion.acreate( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/openai/api_resources/chat_completion.py", line 45, in acreate return await super().acreate(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/openai/api_resources/abstract/engine_apiresource.py", line 217, in acreate response, , api_key = await requestor.arequest( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/openai/api_requestor.py", line 372, in arequest result = await self.arequest_raw( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/openai/api_requestor.py", line 685, in arequest_raw raise error.APIConnectionError("Error communicating with OpenAI") from e openai.error.APIConnectionError: Error communicating with OpenAI
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", line 240, in run_asgi result = await self.app(self.scope, self.asgi_receive, self.asgi_send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 69, in call return await self.app(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/fastapi/applications.py", line 292, in call await super().call(scope, receive, send) File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/applications.py", line 122, in call await self.middleware_stack(scope, receive, send) File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 149, in call await self.app(scope, receive, send) File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/middleware/cors.py", line 75, in call await self.app(scope, receive, send) File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 79, in call raise exc File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 68, in call await self.app(scope, receive, sender) File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in call raise e File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in call await self.app(scope, receive, send) File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/routing.py", line 718, in call await route.handle(scope, receive, send) File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/routing.py", line 341, in handle await self.app(scope, receive, send) File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/routing.py", line 82, in app await func(session) File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/fastapi/routing.py", line 324, in app await dependant.call(values) File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/goldenverba/server/api.py", line 193, in websocket_generate_stream await websocket.send_json( File "/Users/brett/PycharmProjects/training/.venv/lib/python3.12/site-packages/starlette/websockets.py", line 171, in send_json text = json.dumps(data, separators=(",", ":")) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/init.py", line 238, in dumps kw).encode(obj) ^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 200, in encode chunks = self.iterencode(o, _one_shot=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 258, in iterencode return _iterencode(o, 0) ^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/json/encoder.py", line 180, in default raise TypeError(f'Object of type {o.class.name} ' TypeError: Object of type APIConnectionError is not JSON serializable