Skip to content

Exception in multi-root workspace without "path". #70

Description

@ziesemer

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:

def update_workspace_settings(self, settings: list[dict[str, Any]] | None) -> None:

Workarounds

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions