serena
serena copied to clipboard
Tries and fails to install dotnet 9 in a dotnet 8 project
When I try to use Serena, it tries to use the wrong .NET version and it fails due to an SSL certificate error. This is a .NET 8 project, which is already installed.
> use serena to tell me about this project
⏺ I'll use Serena to analyze this project and provide comprehensive information about it.
⎿ Error executing tool: Failed to download .NET 9 runtime from https://builds.dotnet.microsoft.com/dotnet/Runtime/9.0.6/dotnet-runtime-9.0.6-osx-arm64.tar.gz: <urlope
n error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1028)>
When I try to do uvx --from git+https://github.com/oraios/serena serena project index I get this error:
Indexing symbols in project /Users/${HOME}/dev/pos/${PROJECT}…
Traceback (most recent call last):
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/urllib/request.py", line 1319, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
encode_chunked=req.has_header('Transfer-encoding'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/http/client.py", line 1338, in request
self._send_request(method, url, body, headers, encode_chunked)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/http/client.py", line 1384, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/http/client.py", line 1333, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/http/client.py", line 1093, in _send_output
self.send(msg)
~~~~~~~~~^^^^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/http/client.py", line 1037, in send
self.connect()
~~~~~~~~~~~~^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/http/client.py", line 1479, in connect
self.sock = self._context.wrap_socket(self.sock,
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
server_hostname=server_hostname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/ssl.py", line 455, in wrap_socket
return self.sslsocket_class._create(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
sock=sock,
^^^^^^^^^^
...<5 lines>...
session=session
^^^^^^^^^^^^^^^
)
^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/ssl.py", line 1076, in _create
self.do_handshake()
~~~~~~~~~~~~~~~~~^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/ssl.py", line 1372, in do_handshake
self._sslobj.do_handshake()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1028)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/solidlsp/language_servers/csharp_language_server.py", line 466, in _ensure_dotnet_runtime_from_config
urllib.request.urlretrieve(url, download_path)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/urllib/request.py", line 214, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
~~~~~~~^^^^^^^^^^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/urllib/request.py", line 189, in urlopen
return opener.open(url, data, timeout)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/urllib/request.py", line 489, in open
response = self._open(req, data)
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/urllib/request.py", line 506, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
'_open', req)
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/urllib/request.py", line 466, in _call_chain
result = func(*args)
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/urllib/request.py", line 1367, in https_open
return self.do_open(http.client.HTTPSConnection, req,
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
context=self._context)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/urllib/request.py", line 1322, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1028)>
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/bin/serena", line 12, in <module>
sys.exit(top_level())
~~~~~~~~~^^
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/click/core.py", line 1462, in __call__
return self.main(*args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/click/core.py", line 1383, in main
rv = self.invoke(ctx)
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/click/core.py", line 1850, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/click/core.py", line 1850, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/click/core.py", line 1246, in invoke
return ctx.invoke(self.callback, **ctx.params)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/click/core.py", line 814, in invoke
return callback(*args, **kwargs)
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/serena/cli.py", line 445, in index
ProjectCommands._index_project(project, log_level, timeout=timeout)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/serena/cli.py", line 463, in _index_project
ls = proj.create_language_server(log_level=lvl, ls_timeout=timeout, ls_specific_settings=serena_config.ls_specific_settings)
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/serena/project.py", line 304, in create_language_server
return SolidLanguageServer.create(
~~~~~~~~~~~~~~~~~~~~~~~~~~^
ls_config,
^^^^^^^^^^
...<7 lines>...
),
^^
)
^
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/solidlsp/ls.py", line 152, in create
ls = ls_class(config, logger, repository_root_path, solidlsp_settings) # type: ignore
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/solidlsp/language_servers/csharp_language_server.py", line 207, in __init__
dotnet_path, language_server_path = self._ensure_server_installed(logger, config, solidlsp_settings)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/solidlsp/language_servers/csharp_language_server.py", line 275, in _ensure_server_installed
dotnet_path = CSharpLanguageServer._ensure_dotnet_runtime(logger, dotnet_runtime_dep, solidlsp_settings)
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/solidlsp/language_servers/csharp_language_server.py", line 300, in _ensure_dotnet_runtime
return cls._ensure_dotnet_runtime_from_config(logger, dotnet_runtime_dep, solidlsp_settings)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/solidlsp/language_servers/csharp_language_server.py", line 488, in _ensure_dotnet_runtime_from_config
raise SolidLSPException(f"Failed to download .NET 9 runtime from {url}: {e}") from e
solidlsp.ls_exceptions.SolidLSPException: Failed to download .NET 9 runtime from https://builds.dotnet.microsoft.com/dotnet/Runtime/9.0.6/dotnet-runtime-9.0.6-osx-arm64.tar.gz: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1028)>
Output of <uv invocation> serena project health-check:
INFO 2025-10-10 14:25:24,889 serena.cli:health_check:557 - Starting health check for project: /Users/${HOME}/dev/pos/${PROJECT}
INFO 2025-10-10 14:25:24,889 serena.cli:health_check:561 - Creating SerenaAgent with disabled dashboard...
INFO 2025-10-10 14:25:25,047 serena.agent:__init__:204 - Starting Serena server (version=0.1.4-4afe917c-dirty, process id=90695, parent process id=90691)
INFO 2025-10-10 14:25:25,048 serena.agent:__init__:205 - Configuration file: None
INFO 2025-10-10 14:25:25,048 serena.agent:__init__:206 - Available projects:
INFO 2025-10-10 14:25:25,048 serena.agent:__init__:207 - Loaded tools (36): read_file, create_text_file, list_dir, find_file, replace_regex, delete_lines, replace_lines, insert_at_line, search_for_pattern, restart_language_server, get_symbols_overview, find_symbol, find_referencing_symbols, replace_symbol_body, insert_after_symbol, insert_before_symbol, write_memory, read_memory, list_memories, delete_memory, execute_shell_command, activate_project, remove_project, switch_modes, get_current_config, check_onboarding_performed, onboarding, think_about_collected_information, think_about_task_adherence, think_about_whether_you_are_done, summarize_changes, prepare_for_new_conversation, initial_instructions, jet_brains_find_symbol, jet_brains_find_referencing_symbols, jet_brains_get_symbols_overview
INFO 2025-10-10 14:25:25,048 serena.config.serena_config:apply:106 - SerenaAgentContext[name='desktop-app'] included 1 tools: switch_modes
INFO 2025-10-10 14:25:25,048 serena.agent:__init__:221 - Number of exposed tools: 26
INFO 2025-10-10 14:25:25,057 serena.agent:_update_active_tools:401 - Active tools (26): activate_project, check_onboarding_performed, create_text_file, delete_memory, execute_shell_command, find_file, find_referencing_symbols, find_symbol, get_current_config, get_symbols_overview, insert_after_symbol, insert_before_symbol, list_dir, list_memories, onboarding, prepare_for_new_conversation, read_file, read_memory, replace_regex, replace_symbol_body, search_for_pattern, switch_modes, think_about_collected_information, think_about_task_adherence, think_about_whether_you_are_done, write_memory
INFO 2025-10-10 14:25:25,059 serena.util.file_system:start:329 - Loading of .gitignore files starting ...
INFO 2025-10-10 14:25:25,059 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/.gitignore
INFO 2025-10-10 14:25:25,061 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/Database/.gitignore
INFO 2025-10-10 14:25:25,065 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/${PROJECT}.Web/.gitignore
INFO 2025-10-10 14:25:25,071 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/native/.gitignore
INFO 2025-10-10 14:25:25,071 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/RemotePay/.gitignore
INFO 2025-10-10 14:25:25,076 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/docs/.gitignore
INFO 2025-10-10 14:25:25,077 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/RemotePayApp/.gitignore
INFO 2025-10-10 14:25:25,077 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/remote-pay-button/.gitignore
INFO 2025-10-10 14:25:25,078 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/Curbside/.gitignore
INFO 2025-10-10 14:25:25,079 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/CustomerIntake/.gitignore
INFO 2025-10-10 14:25:25,113 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/native/webview_app/.gitignore
INFO 2025-10-10 14:25:25,115 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/native/peripheral_flutter/.gitignore
INFO 2025-10-10 14:25:25,118 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/cloudflare-workers/reverse-proxy/.gitignore
INFO 2025-10-10 14:25:25,118 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/PublicAPI/${PROJECT}PublicAPI/.gitignore
INFO 2025-10-10 14:25:25,241 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/native/webview_app/ios/.gitignore
INFO 2025-10-10 14:25:25,243 serena.util.file_system:_load_gitignore_files:148 - Processing .gitignore file: /Users/${HOME}/dev/pos/${PROJECT}/native/peripheral_flutter/ios/.gitignore
INFO 2025-10-10 14:25:25,589 serena.util.file_system:stop:336 - Loading of .gitignore files completed in 0.531 seconds
INFO 2025-10-10 14:25:25,616 serena.agent:load_project_from_path_or_name:476 - Added new project ${PROJECT} for path /Users/${HOME}/dev/pos/${PROJECT}
INFO 2025-10-10 14:25:25,616 serena.agent:_activate_project:441 - Activating ${PROJECT} at /Users/${HOME}/dev/pos/${PROJECT}
INFO 2025-10-10 14:25:25,616 serena.agent:_update_active_tools:401 - Active tools (26): activate_project, check_onboarding_performed, create_text_file, delete_memory, execute_shell_command, find_file, find_referencing_symbols, find_symbol, get_current_config, get_symbols_overview, insert_after_symbol, insert_before_symbol, list_dir, list_memories, onboarding, prepare_for_new_conversation, read_file, read_memory, replace_regex, replace_symbol_body, search_for_pattern, switch_modes, think_about_collected_information, think_about_task_adherence, think_about_whether_you_are_done, write_memory
INFO 2025-10-10 14:25:25,616 serena.agent:issue_task:420 - Scheduling Task-1[init_language_server]
INFO 2025-10-10 14:25:25,616 serena.agent:start:329 - Task-1[init_language_server] starting ...
INFO 2025-10-10 14:25:25,616 serena.cli:health_check:564 - SerenaAgent created successfully
INFO 2025-10-10 14:25:25,616 serena.agent:start:329 - Language server initialization starting ...
INFO 2025-10-10 14:25:25,616 serena.cli:health_check:567 - Searching for analyzable files...
INFO 2025-10-10 14:25:25,616 serena.project:create_language_server:303 - Creating language server instance for /Users/${HOME}/dev/pos/${PROJECT}.
INFO 2025-10-10 14:25:25,963 solidlsp:_ensure_dotnet_runtime_from_config:448 - Downloading .NET 9 runtime...
ERROR 2025-10-10 14:25:26,060 serena.agent:__exit__:342 - Language server initialization failed after 0.444 seconds
ERROR 2025-10-10 14:25:26,061 serena.agent:__exit__:342 - Task-1[init_language_server] failed after 0.445 seconds
INFO 2025-10-10 14:25:27,820 serena.cli:health_check:576 - Found analyzable file: ${PROJECT}.Web/Dutchie.Register/ExactPackageWeightBundleService.cs
INFO 2025-10-10 14:25:27,820 serena.cli:health_check:594 - Testing GetSymbolsOverviewTool on file: ${PROJECT}.Web/Dutchie.Register/ExactPackageWeightBundleService.cs
INFO 2025-10-10 14:25:27,820 serena.agent:issue_task:420 - Scheduling Task-2[<lambda>]
INFO 2025-10-10 14:25:27,820 serena.agent:start:329 - Task-2[<lambda>] starting ...
ERROR 2025-10-10 14:25:27,820 serena.agent:__exit__:342 - Task-2[<lambda>] failed after 0.000 seconds
ERROR 2025-10-10 14:25:27,820 serena.cli:health_check:672 - Health check failed with exception:
Traceback (most recent call last):
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/serena/cli.py", line 595, in health_check
overview_result = agent.execute_task(lambda: overview_tool.apply(target_file))
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/serena/agent.py", line 432, in execute_task
return future.result()
~~~~~~~~~~~~~^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/concurrent/futures/_base.py", line 456, in result
return self.__get_result()
~~~~~~~~~~~~~~~~~^^
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/Users/${HOME}/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/lib/python3.13/concurrent/futures/thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/serena/agent.py", line 418, in task_execution_wrapper
return task()
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/serena/cli.py", line 595, in <lambda>
overview_result = agent.execute_task(lambda: overview_tool.apply(target_file))
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/serena/tools/symbol_tools.py", line 66, in apply
symbol_retriever = self.create_language_server_symbol_retriever()
File "/Users/${HOME}/.cache/uv/archive-v0/rSHMWm6a5F_gFS0MQG0V-/lib/python3.13/site-packages/serena/tools/tools_base.py", line 52, in create_language_server_symbol_retriever
assert language_server is not None
^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError
- MacOS
- Claude Code
- .NET 8
- Set up using SuperClaude
I have:
- [x] Read the readme and verified that the issue cannot be solved by adjusting configuration
- [x] Understood that Serena's dashboard can be disabled through the config
- [x] Understood that by default a client session will start a separate instance of a Serena server.
- [x] Understood that for multi-agent setups, the SSE mode should be used.
- [x] Verified that non-project files are ignored using either gitignore or the corresponding setting in
.serena/project.yml - [x] Have looked for similar issues and discussions, including closed ones
- [x] Made sure it's an actual issue and not a question - those should be opened as discussion instead.
If you have encountered a real and new issue:
- [x] I performed
<uv invocation> serena project health-check - [x] I indexed the project as described in the readme (fails)
- [x] Added sufficient explanation of my setup: the MCP client, the OS, the programming language, any config adjustments or relevant project specifics
- [x] Explained how the issue arose, added instructions on how to reproduce it (if possible)
- [x] If the issue happens on an open source project, I have added the link (n/a)
- [x] Wrote a meaningful title and description