Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Exception in multi-root workspace without "path".

Open
#70 1 comment 1 reaction 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
65/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
python, vscode
Domain
tooling

Research direction

Start in python/vscode_common_python_lsp/server.py around update_workspace_settings at the referenced source line, and reproduce the failure with the multi-root workspace configuration shown. Trace how a workspace entry without a filesystem path is handled; done means initialization no longer raises the NoneType path exception for remote workspaces and the affected language servers start successfully.

Written by the indexing model from the issue text.

Description

triage-needed

When using the MicroPico extension, for example, with its Remote Workspace support that adds a multi-root workspace as such:

{
	"folders": [
		{
			"path": "."
		},
		{
			"name": "Mpy Remote Workspace",
			"uri": "pico:"
		}
	]
}

The Pylint server (ms-python.pylint) appears to fail because of a non-existent "path" attribute (or similar). I'm also seeing the same error with both the Black Formatter (ms-python.black-formatter) and isort (ms-python.isort), ending with the same stack frames.

[info] Server: Start requested.
[info] Exception occurred for message "0"
Traceback (most recent call last):
  File "***\.vscode\extensions\ms-python.pylint-2026.7.11691008\bundled\libs\pygls\protocol\json_rpc.py", line 300, in _send_handler_result
    self._send_response(msg_id, result=future.result())
                                       ~~~~~~~~~~~~~^^
  File "C:\Program Files\Python314\Lib\concurrent\futures\_base.py", line 447, in result
    return self.__get_result()
           ~~~~~~~~~~~~~~~~~^^
  File "C:\Program Files\Python314\Lib\concurrent\futures\_base.py", line 396, in __get_result
    raise self._exception
  File "***\.vscode\extensions\ms-python.pylint-2026.7.11691008\bundled\libs\pygls\protocol\json_rpc.py", line 273, in _run_generator
    value = future.result() if future is not None else None
            ~~~~~~~~~~~~~^^
  File "C:\Program Files\Python314\Lib\concurrent\futures\_base.py", line 447, in result
    return self.__get_result()
           ~~~~~~~~~~~~~~~~~^^
  File "C:\Program Files\Python314\Lib\concurrent\futures\_base.py", line 396, in __get_result
    raise self._exception
  File "***\.vscode\extensions\ms-python.pylint-2026.7.11691008\bundled\libs\pygls\protocol\json_rpc.py", line 236, in _execute_handler
    result = handler(*args, **kwargs)
  File "***\.vscode\extensions\ms-python.pylint-2026.7.11691008\bundled\tool\lsp_server.py", line 718, in initialize
    tool_server.apply_settings(params)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "***\.vscode\extensions\ms-python.pylint-2026.7.11691008\bundled\libs\vscode_common_python_lsp\server.py", line 482, in apply_settings
    self.update_workspace_settings(settings)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "***\.vscode\extensions\ms-python.pylint-2026.7.11691008\bundled\libs\vscode_common_python_lsp\server.py", line 152, in update_workspace_settings
    key = normalize_path(
        uris.to_fs_path(setting["workspace"]),
        resolve_symlinks=self.config.resolve_symlinks,
    )
  File "***\.vscode\extensions\ms-python.pylint-2026.7.11691008\bundled\libs\vscode_common_python_lsp\paths.py", line 236, in normalize_path
    path = pathlib.Path(file_path)
  File "C:\Program Files\Python314\Lib\pathlib\__init__.py", line 150, in __init__
    raise TypeError(
    ...<2 lines>...
        f"not {type(path).__name__!r}")
TypeError: argument should be a str or an os.PathLike object where __fspath__ returns a str, not 'NoneType'

[info] [Error] Server initialization failed.

Relevant source: https://github.com/microsoft/vscode-common-python-lsp/blob/0258b220929850986b1d9413ac27b203a72acc04/python/vscode_common_python_lsp/server.py#L137

Workarounds

A workaround is to disable the Remote Workspace, and not enable until after the analysis servers have already started.

Dominant language
Python
Stars
2
Forks
4
Avg merge
12h 45m
Merged PRs (30d)
2

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from microsoft/vscode-common-python-lsp

All issues in microsoft/vscode-common-python-lsp

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.