MarketSquare / MarketSquare/robotframework-selfhealing-agents
Feature: Add an option to disable SSL verification
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 27
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
We use a local AI proxy in our company. When accessing it via the Selfhealing Agent, a certificate error occurs.
We need an option to disable SSL verification.
For example, with a parameter **SSL_VERIFY=\** in the .env file.
```
{"browser": "chromium", "headless": true, "chromiumSandbox": false, "devtools": false, "handleSIGHUP": true, "handleSIGINT": true, "handleSIGTERM": true, "slowMo": 0.0, "timeout": 30000.0, "tracesDir": "C:\\Users\\mr_x\\repository\\playground\\mcp\\results\\browser\\traces\\temp\\b0fe892e-a47d-410f-abd4-9253ab769620"}
Starting Browser process C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\Browser\wrapper\index.js using at 127.0.0.1:60387
Successfully created browser with options: {"browser":"chromium","headless":true,"chromiumSandbox":false,"devtools":false,"handleSIGHUP":true,"handleSIGINT":true,"handleSIGTERM":true,"slowMo":0,"timeout":30000,"tracesDir":"C:\\Users\\mr_x\\repository\\playground\\mcp\\results\\browser\\traces\\temp\\b0fe892e-a47d-410f-abd4-9253ab769620"}
[ DEBUG ] SelfhealingAgents: Monitoring test 'Login with valid credentials'
{
"acceptDownloads": true,
"bypassCSP": false,
"forcedColors": "none",
"ignoreHTTPSErrors": false,
"javaScriptEnabled": true,
"offline": false,
"reducedMotion": "no-preference",
"serviceWorkers": "allow",
"viewport": {
"height": 720,
"width": 1280
}
}
Successfully created context.
{'acceptDownloads': True, 'bypassCSP': False, 'forcedColors': 'none', 'ignoreHTTPSErrors': False, 'javaScriptEnabled': True, 'offline': False, 'reducedMotion': 'no-preference', 'serviceWorkers': 'allow', 'viewport': {'height': 720, 'width': 1280}}
Successfully initialized new page object and opened url: https://automationintesting.com/selenium/testpage/
[ DEBUG ] Video is not enabled.
Fills the text 'tom' in the given field.
[ DEBUG ] Screenshot successfully captured to: C:\Users\mr_x\repository\playground\mcp\results\browser\screenshot\fail-screenshot-1.png
See also file:///C:/Users/mr_x/repository/playground/mcp/results/playwright-log.txt for additional details.
[ FAIL ] TimeoutError: locator.fill: Timeout 1000ms exceeded.
Call log:
- waiting for locator('id=first_name')
[ DEBUG ] Traceback (most recent call last):
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\Browser\playwright.py", line 189, in grpc_channel
yield playwright_pb2_grpc.PlaywrightStub(self._channel)
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\Browser\keywords\interaction.py", line 797, in _fill_text
response = stub.FillText(
^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\grpc\_channel.py", line 1178, in __call__
return _end_unary_response_blocking(state, call, False, None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\grpc\_channel.py", line 1006, in _end_unary_response_blocking
raise _InactiveRpcError(state) # pytype: disable=not-instantiable
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.DEADLINE_EXCEEDED
details = "TimeoutError: locator.fill: Timeout 1000ms exceeded.
Call log:
- waiting for locator('id=first_name')
"
debug_error_string = "UNKNOWN:Error received from peer {grpc_message:"TimeoutError: locator.fill: Timeout 1000ms exceeded.\nCall log:\n\x1b[2m - waiting for locator(\'id=first_name\')\x1b[22m\n", grpc_status:4}"
>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\Browser\browser.py", line 1280, in run_keyword
raise e
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\Browser\browser.py", line 1268, in run_keyword
return DynamicCore.run_keyword(self, name, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\robotlibcore.py", line 173, in run_keyword
return self.keywords[name](*args, **(kwargs or {}))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\Browser\keywords\interaction.py", line 115, in fill_text
self._fill_text(selector, txt, strict=self.strict_mode, force=force)
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\Browser\keywords\interaction.py", line 796, in _fill_text
with self.playwright.grpc_channel() as stub:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\AppData\Roaming\uv\python\cpython-3.12.11-windows-x86_64-none\Lib\contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\Browser\playwright.py", line 193, in grpc_channel
raise AssertionError(error.details())
AssertionError: TimeoutError: locator.fill: Timeout 1000ms exceeded.
Call log:
- waiting for locator('id=first_name')
[ DEBUG ] RobotAid: Detected failure in keyword 'Fill Text'
JavaScript executed successfully.
[ DEBUG ] Page source obtained successfully.
[ DEBUG ] Using proactor: IocpProactor
[ DEBUG ] Request options: {'method': 'post', 'url': '/chat/completions', 'headers': {'User-Agent': 'pydantic-ai/0.6.2'}, 'files': None, 'idempotency_key': 'stainless-python-retry-52a276a3-bbf1-40de-a3cb-e30a4efe2a9b', 'json_data': {'messages': [{'role': 'system', 'content': 'You are a Robot Framework smart recovery tool and a JSON passthrough machine. Your only job is to return the exact, raw JSON output from a tool.\nThe following tools are available to you:\n- get_healed_locators: This tool provides locator suggestions for a broken locator.\n\n'}, {'role': 'user', 'content': "Call the 'get_healed_locators' tool for the broken locator: `id=first_name`.\n"}], 'model': 'gpt-4o', 'parallel_tool_calls': False, 'stream': False, 'temperature': 0.1, 'tool_choice': 'auto', 'tools': [{'type': 'function', 'function': {'name': 'final_result', 'description': 'Gets a list of healed locator suggestions for a broken locator.\n\nstr\nList of repaired locator suggestions in JSON format.\n', 'parameters': {'additionalProperties': False, 'properties': {}, 'type': 'object'}}}]}}
[ DEBUG ] Sending HTTP Request: POST https://ki-proxy-test.somewhere.org/chat/completions
[ DEBUG ] connect_tcp.started host='ki-proxy-test.somewhere.org' port=443 local_address=None timeout=5 socket_options=None
[ DEBUG ] connect_tcp.complete return_value=
[ DEBUG ] start_tls.started ssl_context= server_hostname='ki-proxy-test.somewhere.org' timeout=5
[ DEBUG ] start_tls.failed exception=ConnectError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1010)'))
[ DEBUG ] Encountered Exception
Traceback (most recent call last):
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_transports\default.py", line 101, in map_httpcore_exceptions
yield
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_transports\default.py", line 394, in handle_async_request
resp = await self._pool.handle_async_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection_pool.py", line 256, in handle_async_request
raise exc from None
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection_pool.py", line 236, in handle_async_request
response = await connection.handle_async_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection.py", line 101, in handle_async_request
raise exc
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection.py", line 78, in handle_async_request
stream = await self._connect(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection.py", line 156, in _connect
stream = await stream.start_tls(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_backends\anyio.py", line 67, in start_tls
with map_exceptions(exc_map):
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\AppData\Roaming\uv\python\cpython-3.12.11-windows-x86_64-none\Lib\contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1010)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\openai\_base_client.py", line 1529, in request
response = await self._client.send(
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_transports\default.py", line 393, in handle_async_request
with map_httpcore_exceptions():
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\AppData\Roaming\uv\python\cpython-3.12.11-windows-x86_64-none\Lib\contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_transports\default.py", line 118, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1010)
[ DEBUG ] 2 retries left
Retrying request to /chat/completions in 0.467564 seconds
[ DEBUG ] Request options: {'method': 'post', 'url': '/chat/completions', 'headers': {'User-Agent': 'pydantic-ai/0.6.2'}, 'files': None, 'idempotency_key': 'stainless-python-retry-52a276a3-bbf1-40de-a3cb-e30a4efe2a9b', 'json_data': {'messages': [{'role': 'system', 'content': 'You are a Robot Framework smart recovery tool and a JSON passthrough machine. Your only job is to return the exact, raw JSON output from a tool.\nThe following tools are available to you:\n- get_healed_locators: This tool provides locator suggestions for a broken locator.\n\n'}, {'role': 'user', 'content': "Call the 'get_healed_locators' tool for the broken locator: `id=first_name`.\n"}], 'model': 'gpt-4o', 'parallel_tool_calls': False, 'stream': False, 'temperature': 0.1, 'tool_choice': 'auto', 'tools': [{'type': 'function', 'function': {'name': 'final_result', 'description': 'Gets a list of healed locator suggestions for a broken locator.\n\nstr\nList of repaired locator suggestions in JSON format.\n', 'parameters': {'additionalProperties': False, 'properties': {}, 'type': 'object'}}}]}}
[ DEBUG ] Sending HTTP Request: POST https://ki-proxy-test.somewhere.org/chat/completions
[ DEBUG ] connect_tcp.started host='ki-proxy-test.somewhere.org' port=443 local_address=None timeout=5 socket_options=None
[ DEBUG ] connect_tcp.complete return_value=
[ DEBUG ] start_tls.started ssl_context= server_hostname='ki-proxy-test.somewhere.org' timeout=5
[ DEBUG ] start_tls.failed exception=ConnectError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1010)'))
[ DEBUG ] Encountered Exception
Traceback (most recent call last):
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_transports\default.py", line 101, in map_httpcore_exceptions
yield
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_transports\default.py", line 394, in handle_async_request
resp = await self._pool.handle_async_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection_pool.py", line 256, in handle_async_request
raise exc from None
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection_pool.py", line 236, in handle_async_request
response = await connection.handle_async_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection.py", line 101, in handle_async_request
raise exc
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection.py", line 78, in handle_async_request
stream = await self._connect(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection.py", line 156, in _connect
stream = await stream.start_tls(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_backends\anyio.py", line 67, in start_tls
with map_exceptions(exc_map):
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\AppData\Roaming\uv\python\cpython-3.12.11-windows-x86_64-none\Lib\contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1010)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\openai\_base_client.py", line 1529, in request
response = await self._client.send(
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_transports\default.py", line 393, in handle_async_request
with map_httpcore_exceptions():
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\AppData\Roaming\uv\python\cpython-3.12.11-windows-x86_64-none\Lib\contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_transports\default.py", line 118, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1010)
[ DEBUG ] 1 retry left
Retrying request to /chat/completions in 0.924295 seconds
[ DEBUG ] Request options: {'method': 'post', 'url': '/chat/completions', 'headers': {'User-Agent': 'pydantic-ai/0.6.2'}, 'files': None, 'idempotency_key': 'stainless-python-retry-52a276a3-bbf1-40de-a3cb-e30a4efe2a9b', 'json_data': {'messages': [{'role': 'system', 'content': 'You are a Robot Framework smart recovery tool and a JSON passthrough machine. Your only job is to return the exact, raw JSON output from a tool.\nThe following tools are available to you:\n- get_healed_locators: This tool provides locator suggestions for a broken locator.\n\n'}, {'role': 'user', 'content': "Call the 'get_healed_locators' tool for the broken locator: `id=first_name`.\n"}], 'model': 'gpt-4o', 'parallel_tool_calls': False, 'stream': False, 'temperature': 0.1, 'tool_choice': 'auto', 'tools': [{'type': 'function', 'function': {'name': 'final_result', 'description': 'Gets a list of healed locator suggestions for a broken locator.\n\nstr\nList of repaired locator suggestions in JSON format.\n', 'parameters': {'additionalProperties': False, 'properties': {}, 'type': 'object'}}}]}}
[ DEBUG ] Sending HTTP Request: POST https://ki-proxy-test.somewhere.org/chat/completions
[ DEBUG ] connect_tcp.started host='ki-proxy-test.somewhere.org' port=443 local_address=None timeout=5 socket_options=None
[ DEBUG ] connect_tcp.complete return_value=
[ DEBUG ] start_tls.started ssl_context= server_hostname='ki-proxy-test.somewhere.org' timeout=5
[ DEBUG ] start_tls.failed exception=ConnectError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1010)'))
[ DEBUG ] Encountered Exception
Traceback (most recent call last):
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_transports\default.py", line 101, in map_httpcore_exceptions
yield
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_transports\default.py", line 394, in handle_async_request
resp = await self._pool.handle_async_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection_pool.py", line 256, in handle_async_request
raise exc from None
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection_pool.py", line 236, in handle_async_request
response = await connection.handle_async_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection.py", line 101, in handle_async_request
raise exc
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection.py", line 78, in handle_async_request
stream = await self._connect(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_async\connection.py", line 156, in _connect
stream = await stream.start_tls(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_backends\anyio.py", line 67, in start_tls
with map_exceptions(exc_map):
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\AppData\Roaming\uv\python\cpython-3.12.11-windows-x86_64-none\Lib\contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpcore\_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1010)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\openai\_base_client.py", line 1529, in request
response = await self._client.send(
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_transports\default.py", line 393, in handle_async_request
with map_httpcore_exceptions():
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mr_x\AppData\Roaming\uv\python\cpython-3.12.11-windows-x86_64-none\Lib\contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "C:\Users\mr_x\repository\playground\mcp\.venv\Lib\site-packages\httpx\_transports\default.py", line 118, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1010)
[ DEBUG ] Raising connection error
[ ERROR ] Calling method 'end_library_keyword' of listener 'SelfhealingAgents' failed: APIConnectionError: Connection error.
Switching browser to CURRENT
Returned active browser id. CURRENT
Switching context to CURRENT in CURRENT
Returned active context id: CURRENT
Switching context to context=0f54c29e-4d85-4d86-a5d3-6299fa97b55f in CURRENT
Successfully changed active context: context=0f54c29e-4d85-4d86-a5d3-6299fa97b55f
Successfully closed Context
RobotAid: Test 'Login with valid credentials' failed - collecting information for healing
Closed all browsers
```
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the configuration loading from the .env file and the client request to /chat/completions, where the log shows the SSL certificate verification failure. Trace how the request is created and determine where SSL_VERIFY should be read. Done means the option controls certificate verification for this proxy request while the default behavior remains unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, security
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100