OpenAIError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)

Hi team ,
I am getting below mentioned certificate verification failed error when using crew AI framwork .
When I run the same code using httpx , it works fine. Please suggest a way how I can override the LLM lite cerficate verification location . Already exported the variable -

export SSL_CERT_FILE=/opt/homebrew/etc/ca-certificates/cert.pem But still not working.

i have also tried setting the config as -

{
“custom_httpx_client_kwargs”: {
“verify”: “/opt/homebrew/etc/ca-certificates/cert.pem”
}
}

import httpx

GROQ_API_KEY = “” ← paste your key here

headers = {
“Authorization”: f"Bearer {GROQ_API_KEY}"
}

try:
response = httpx.get(
https://api.groq.com/openai/v1/models”,
headers=headers,
verify=“/opt/homebrew/etc/ca-certificates/cert.pem” # ← this fixes the SSL cert issue
)
print(“Status Code:”, response.status_code)
print(“Response JSON:”, response.json())
except Exception as e:
print(“ERROR:”, e)

Error logs -

httpx.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
response = base_llm_http_handler.completion(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
response = self._make_common_sync_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
raise self._handle_error(e=e, provider_config=provider_config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
raise provider_config.get_error_class(
.OpenAIError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/main.py”, line 54, in
result = final_crew.kickoff()
^^^^^^^^^^^^^^^^^^^^
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/crew.py”, line 661, in kickoff
result = self._run_sequential_process()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/crew.py”, line 773, in _run_sequential_process
return self._execute_tasks(self.tasks)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/crew.py”, line 876, in _execute_tasks
task_output = task.execute_sync(
^^^^^^^^^^^^^^^^^^
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/task.py”, line 351, in execute_sync
return self._execute_core(agent, context, tools)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/task.py”, line 495, in _execute_core
raise e # Re-raise the exception after emitting the event
^^^^^^^
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/task.py”, line 415, in _execute_core
result = agent.execute_task(
^^^^^^^^^^^^^^^^^^^
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/agent.py”, line 420, in execute_task
raise e
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/agent.py”, line 396, in execute_task
result = self._execute_without_timeout(task_prompt, task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/agent.py”, line 492, in _execute_without_timeout
return self.agent_executor.invoke(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/agents/crew_agent_executor.py”, line 121, in invoke
raise e
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/agents/crew_agent_executor.py”, line 110, in invoke
formatted_answer = self._invoke_loop()
^^^^^^^^^^^^^^^^^^^
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/agents/crew_agent_executor.py”, line 206, in _invoke_loop
raise e
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/agents/crew_agent_executor.py”, line 153, in _invoke_loop
answer = get_llm_response(
^^^^^^^^^^^^^^^^^
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/utilities/agent_utils.py”, line 157, in get_llm_response
raise e
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/utilities/agent_utils.py”, line 148, in get_llm_response
answer = llm.call(
^^^^^^^^^
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/llm.py”, line 924, in call
return self._handle_non_streaming_response(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/myuser/Downloads/issue-identification-agent/alert_analysis_agent/src/alert_analysis_agent/venv/lib/python3.11/site-packages/crewai/llm.py”, line 763, in _handle_non_streaming_response

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
raise e
result = original_function(*args, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
raise exception_type(
      ^^^^^^^^^^^^^^^
raise e
raise APIError(

.APIError:

As mentioned in the community’s Guidelines for Creating a Helpful Post, it’s really important to provide a complete, minimal, reproducible example. That’s how others can actually test your setup and lend a hand.