Skip to content

Multi project workspace with poetry venvs result in "Unsuported server configuration" error #240

Open
@leddy231

Description

@leddy231

Background
At work we have a large Python monorepo with multiple libraries and services. Each python project has its own pyproject.toml with its own dependencies. We use Poetry with poetry config virtualenvs.in-project true to create a virtual environment in each project folder, and a vscode workspace which sets these venvs as the python interpreter for each project. This has worked wonderfully and each opened python file correctly loads the appropriate venv for linting and import resolution.

Recently the Ruff extension has stopped working, and with one of the latest extension updates or updates to vscode it now produces a crash log. Ruff works fine if you open one of the projects alone in vscode, but does not work with the workspace.
Here is a minimal repo that reproduces the crash: https://github.com/leddy231/ruff_vscode_multiroot

Ruff = 0.0.272
Python = 3.10.4 and 3.11.3
VSCode = 1.79.2
Ruff-extension = 6/20/2023

Here is the full crash output from the extension

2023-06-20 15:11:35.229 [info] Name: Ruff
2023-06-20 15:11:35.229 [info] Module: ruff
2023-06-20 15:11:35.229 [info] Python extension loading
2023-06-20 15:11:35.229 [info] Waiting for interpreter from python extension.
2023-06-20 15:11:36.036 [info] Python extension loaded
2023-06-20 15:11:38.216 [info] Server run command:  /home/martin/.vscode/extensions/charliermarsh.ruff-2023.26.0-linux-x64/bundled/tool/server.py
2023-06-20 15:11:38.216 [info] Server: Start requested.
2023-06-20 15:11:38.219 [info] [Error - 3:11:38 PM] Ruff client: couldn't create connection to server.
2023-06-20 15:11:38.219 [info] Error: Unsupported server configuration {
    "args": [
        "/home/martin/.vscode/extensions/charliermarsh.ruff-2023.26.0-linux-x64/bundled/tool/server.py"
    ],
    "options": {
        "cwd": "/home/martin/ruff_multiroot_test",
        "env": {
            "ASDF_DIR": "/home/martin/.asdf",
            "CHROME_DESKTOP": "code-url-handler.desktop",
            "COLORTERM": "truecolor",
            "COMPIZ_CONFIG_PROFILE": "gnome-flashback",
            "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus",
            "DEBUGINFOD_URLS": "https://debuginfod.ubuntu.com ",
            "DESKTOP_AUTOSTART_ID": "103e5e9bed3e08c4bf168726171799393000000053800016",
            "DESKTOP_SESSION": "regolith",
            "DISPLAY": ":0",
            "ELECTRON_NO_ATTACH_CONSOLE": "1",
            "GDK_BACKEND": "x11",
            "GDMSESSION": "regolith",
            "GIO_LAUNCHED_DESKTOP_FILE": "/usr/share/applications/code.desktop",
            "GIO_LAUNCHED_DESKTOP_FILE_PID": "72752",
            "GNOME_DESKTOP_SESSION_ID": "this-is-deprecated",
            "GNOME_TERMINAL_SCREEN": "/org/gnome/Terminal/screen/2aa16ef4_874a_44d9_a16f_b8ba7bd97c44",
            "GNOME_TERMINAL_SERVICE": ":1.240",
            "GPG_AGENT_INFO": "/run/user/1000/gnupg/S.gpg-agent:0:1",
            "GTK_MODULES": "gail:atk-bridge",
            "HOME": "/home/martin",
            "I3SOCK": "/run/user/1000/i3/ipc-socket.5745",
            "LANG": "en_US.UTF-8",
            "LC_ADDRESS": "sv_SE.UTF-8",
            "LC_IDENTIFICATION": "sv_SE.UTF-8",
            "LC_MEASUREMENT": "sv_SE.UTF-8",
            "LC_MONETARY": "sv_SE.UTF-8",
            "LC_NAME": "sv_SE.UTF-8",
            "LC_NUMERIC": "sv_SE.UTF-8",
            "LC_PAPER": "sv_SE.UTF-8",
            "LC_TELEPHONE": "sv_SE.UTF-8",
            "LC_TIME": "sv_SE.UTF-8",
            "LESS": "-R",
            "LOGNAME": "martin",
            "LSCOLORS": "Gxfxcxdxbxegedabagacad",
            "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:",
            "NO_AT_BRIDGE": "1",
            "OLDPWD": "/home/martin",
            "ORIGINAL_XDG_CURRENT_DESKTOP": "sway",
            "PAGER": "less",
            "PATH": "/home/martin/.local/bin:/home/martin/.asdf/shims:/home/martin/.asdf/bin:/home/martin/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin",
            "PWD": "/home/martin/ruff_multiroot_test",
            "QT_ACCESSIBILITY": "1",
            "QT_IM_MODULE": "ibus",
            "SESSION_MANAGER": "local/martin-eliteboook:@/tmp/.ICE-unix/5380,unix/martin-eliteboook:/tmp/.ICE-unix/5380",
            "SHELL": "/usr/bin/zsh",
            "SHLVL": "1",
            "SSH_AGENT_PID": "125481",
            "SSH_AUTH_SOCK": "/tmp/ssh-XXXXXX9wDaF4/agent.125480",
            "SYSTEMD_EXEC_PID": "5124",
            "TERM": "xterm-256color",
            "USER": "martin",
            "USERNAME": "martin",
            "VSCODE_AMD_ENTRYPOINT": "vs/workbench/api/node/extensionHostProcess",
            "VSCODE_CLI": "1",
            "VSCODE_CODE_CACHE_PATH": "/home/martin/.config/Code/CachedData/695af097c7bd098fbf017ce3ac85e09bbc5dda06",
            "VSCODE_CRASH_REPORTER_PROCESS_TYPE": "extensionHost",
            "VSCODE_CWD": "/home/martin/ruff_multiroot_test",
            "VSCODE_HANDLES_UNCAUGHT_ERRORS": "true",
            "VSCODE_IPC_HOOK": "/run/user/1000/vscode-6379ee7e-1.79-main.sock",
            "VSCODE_NLS_CONFIG": "{\"locale\":\"en-us\",\"osLocale\":\"en-us\",\"availableLanguages\":{},\"_languagePackSupport\":true}",
            "VSCODE_PID": "72752",
            "VTE_VERSION": "7000",
            "WINDOWPATH": "2",
            "XAUTHORITY": "/run/user/1000/gdm/Xauthority",
            "XDG_CONFIG_DIRS": "/etc/xdg/xdg-regolith:/etc/xdg",
            "XDG_CURRENT_DESKTOP": "sway",
            "XDG_DATA_DIRS": "/usr/share/regolith:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop",
            "XDG_MENU_PREFIX": "gnome-flashback-",
            "XDG_RUNTIME_DIR": "/run/user/1000",
            "XDG_SESSION_CLASS": "user",
            "XDG_SESSION_DESKTOP": "regolith",
            "XDG_SESSION_TYPE": "x11",
            "XMODIFIERS": "@im=ibus",
            "ZSH": "/home/martin/.oh-my-zsh",
            "_": "/usr/bin/code",
            "ELECTRON_RUN_AS_NODE": "1",
            "APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL": "1",
            "USE_DEBUGPY": "False",
            "LS_SHOW_NOTIFICATION": "off"
        }
    }
}
    at stdioEncoding (/home/martin/.vscode/extensions/charliermarsh.ruff-2023.26.0-linux-x64/dist/webpack:/ruff/node_modules/vscode-languageclient/lib/node/main.js:466:98)
    at b.LogMessageNotification [as createConnection] (/home/martin/.vscode/extensions/charliermarsh.ruff-2023.26.0-linux-x64/dist/webpack:/ruff/node_modules/vscode-languageclient/lib/common/client.js:1094:83)
    at b.start (/home/martin/.vscode/extensions/charliermarsh.ruff-2023.26.0-linux-x64/dist/webpack:/ruff/node_modules/vscode-languageclient/lib/common/client.js:635:72)
    at runServer (/home/martin/.vscode/extensions/charliermarsh.ruff-2023.26.0-linux-x64/dist/webpack:/ruff/src/common/server.ts:118:16)
    at checkIfConfigurationChanged (/home/martin/.vscode/extensions/charliermarsh.ruff-2023.26.0-linux-x64/dist/webpack:/ruff/src/extension.ts:158:15)
    at /home/martin/.vscode/extensions/charliermarsh.ruff-2023.26.0-linux-x64/dist/webpack:/ruff/src/extension.ts:179:11
2023-06-20 15:11:38.219 [error] Server: Start failed: Error: Unsupported server configuration {
    "args": [
        "/home/martin/.vscode/extensions/charliermarsh.ruff-2023.26.0-linux-x64/bundled/tool/server.py"
    ],
    "options": {
        "cwd": "/home/martin/ruff_multiroot_test",
        "env": {
            "ASDF_DIR": "/home/martin/.asdf",
            "CHROME_DESKTOP": "code-url-handler.desktop",
            "COLORTERM": "truecolor",
            "COMPIZ_CONFIG_PROFILE": "gnome-flashback",
            "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus",
            "DEBUGINFOD_URLS": "https://debuginfod.ubuntu.com ",
            "DESKTOP_AUTOSTART_ID": "103e5e9bed3e08c4bf168726171799393000000053800016",
            "DESKTOP_SESSION": "regolith",
            "DISPLAY": ":0",
            "ELECTRON_NO_ATTACH_CONSOLE": "1",
            "GDK_BACKEND": "x11",
            "GDMSESSION": "regolith",
            "GIO_LAUNCHED_DESKTOP_FILE": "/usr/share/applications/code.desktop",
            "GIO_LAUNCHED_DESKTOP_FILE_PID": "72752",
            "GNOME_DESKTOP_SESSION_ID": "this-is-deprecated",
            "GNOME_TERMINAL_SCREEN": "/org/gnome/Terminal/screen/2aa16ef4_874a_44d9_a16f_b8ba7bd97c44",
            "GNOME_TERMINAL_SERVICE": ":1.240",
            "GPG_AGENT_INFO": "/run/user/1000/gnupg/S.gpg-agent:0:1",
            "GTK_MODULES": "gail:atk-bridge",
            "HOME": "/home/martin",
            "I3SOCK": "/run/user/1000/i3/ipc-socket.5745",
            "LANG": "en_US.UTF-8",
            "LC_ADDRESS": "sv_SE.UTF-8",
            "LC_IDENTIFICATION": "sv_SE.UTF-8",
            "LC_MEASUREMENT": "sv_SE.UTF-8",
            "LC_MONETARY": "sv_SE.UTF-8",
            "LC_NAME": "sv_SE.UTF-8",
            "LC_NUMERIC": "sv_SE.UTF-8",
            "LC_PAPER": "sv_SE.UTF-8",
            "LC_TELEPHONE": "sv_SE.UTF-8",
            "LC_TIME": "sv_SE.UTF-8",
            "LESS": "-R",
            "LOGNAME": "martin",
            "LSCOLORS": "Gxfxcxdxbxegedabagacad",
            "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:",
            "NO_AT_BRIDGE": "1",
            "OLDPWD": "/home/martin",
            "ORIGINAL_XDG_CURRENT_DESKTOP": "sway",
            "PAGER": "less",
            "PATH": "/home/martin/.local/bin:/home/martin/.asdf/shims:/home/martin/.asdf/bin:/home/martin/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin",
            "PWD": "/home/martin/ruff_multiroot_test",
            "QT_ACCESSIBILITY": "1",
            "QT_IM_MODULE": "ibus",
            "SESSION_MANAGER": "local/martin-eliteboook:@/tmp/.ICE-unix/5380,unix/martin-eliteboook:/tmp/.ICE-unix/5380",
            "SHELL": "/usr/bin/zsh",
            "SHLVL": "1",
            "SSH_AGENT_PID": "125481",
            "SSH_AUTH_SOCK": "/tmp/ssh-XXXXXX9wDaF4/agent.125480",
            "SYSTEMD_EXEC_PID": "5124",
            "TERM": "xterm-256color",
            "USER": "martin",
            "USERNAME": "martin",
            "VSCODE_AMD_ENTRYPOINT": "vs/workbench/api/node/extensionHostProcess",
            "VSCODE_CLI": "1",
            "VSCODE_CODE_CACHE_PATH": "/home/martin/.config/Code/CachedData/695af097c7bd098fbf017ce3ac85e09bbc5dda06",
            "VSCODE_CRASH_REPORTER_PROCESS_TYPE": "extensionHost",
            "VSCODE_CWD": "/home/martin/ruff_multiroot_test",
            "VSCODE_HANDLES_UNCAUGHT_ERRORS": "true",
            "VSCODE_IPC_HOOK": "/run/user/1000/vscode-6379ee7e-1.79-main.sock",
            "VSCODE_NLS_CONFIG": "{\"locale\":\"en-us\",\"osLocale\":\"en-us\",\"availableLanguages\":{},\"_languagePackSupport\":true}",
            "VSCODE_PID": "72752",
            "VTE_VERSION": "7000",
            "WINDOWPATH": "2",
            "XAUTHORITY": "/run/user/1000/gdm/Xauthority",
            "XDG_CONFIG_DIRS": "/etc/xdg/xdg-regolith:/etc/xdg",
            "XDG_CURRENT_DESKTOP": "sway",
            "XDG_DATA_DIRS": "/usr/share/regolith:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop",
            "XDG_MENU_PREFIX": "gnome-flashback-",
            "XDG_RUNTIME_DIR": "/run/user/1000",
            "XDG_SESSION_CLASS": "user",
            "XDG_SESSION_DESKTOP": "regolith",
            "XDG_SESSION_TYPE": "x11",
            "XMODIFIERS": "@im=ibus",
            "ZSH": "/home/martin/.oh-my-zsh",
            "_": "/usr/bin/code",
            "ELECTRON_RUN_AS_NODE": "1",
            "APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL": "1",
            "USE_DEBUGPY": "False",
            "LS_SHOW_NOTIFICATION": "off"
        }
    }
}

Metadata

Metadata

Assignees

Labels

questionAsking for support or clarification

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions