microsoft / microsoft/vscode-python-environments
Path-only pythonProjects entries crash manager initialization
@eleanorjboyd ya está trabajando en esto.
Desde el 5/8/2026.
- Lenguaje dominante
- TypeScript
- Estrellas
- 138
- Forks
- 62
- Merge medio
- 1 d 4 h
- PR fusionados (30 d)
- 35
Descripción
Environment data
- Python Environments extension version: 1.36.0 (latest Marketplace stable); also reproduced from
mainatf61acdf535b9c8e8983e6b600048f3f4de1425e1(package version 1.37.0) - Python extension (
ms-python.python) version: 2026.4.0 - VS Code version (Help → About): 1.130.0 (
1b6a188127eeaf9194f945eb6eb89a657e93c54c) - OS and version: macOS 15.3.2 arm64
- Python version: 3.9.6
- Environment manager in use:
venv - Shell: zsh
- Remote / container scenario: none
- Workspace type: single-folder mono-repo
- Is this a regression? Unknown
Repro Steps
-
Start VS Code with empty
--user-data-dirand--extensions-dirdirectories. -
Install only
ms-python.pythonandms-python.vscode-pylance; this installsms-python.vscode-python-envsas a dependency. -
Open a fresh folder containing
backend/main.pyandbackend/.venv. -
Add the following workspace settings:
{ "python.useEnvironmentsExtension": true, "python.analysis.usePerProjectEnvironments": true, "python-envs.pythonProjects": [ { "path": "backend" } ] } -
Reload the window and open
backend/main.py.
Expected behavior
The path-only project entry is accepted. Because envManager and packageManager are optional in the contributed setting schema, the extension uses python-envs.defaultEnvManager and python-envs.defaultPackageManager.
Actual behavior
Environment-manager initialization repeatedly throws TypeError: Cannot read properties of undefined (reading 'length'). Post-initialization telemetry and subsequent environment lookups fail, preventing reliable project environment resolution.
getDefaultEnvManagerSetting() and getDefaultPkgManagerSetting() dereference optional object properties without checking whether they exist:
if (settings && settings.envManager.length > 0) {
// ...
if (settings && settings.packageManager.length > 0) {
Explicitly adding both manager properties avoids the exception, but duplicates defaults that the setting schema already defines and should not be required.
Logs
Python-envs extension version: 1.36.0
Post-initialization tasks failed: TypeError: Cannot read properties of undefined (reading 'length')
at getDefaultEnvManagerSetting (.../ms-python.vscode-python-envs-1.36.0-darwin-arm64/dist/extension.js:2:389988)
at sendManagerSelectionTelemetry (.../dist/extension.js:2:286259)
TypeError: Cannot read properties of undefined (reading 'length')
at getDefaultEnvManagerSetting (.../ms-python.vscode-python-envs-1.36.0-darwin-arm64/dist/extension.js:2:389988)
at waitForEnvManager (.../dist/extension.js:2:313554)
at async getEnvironment (.../dist/extension.js:2:384509)
Additional context
The reproduction used a genuinely empty VS Code profile with no third-party extensions or pre-existing user settings.
A local fix that treats omitted manager properties as fallback-to-default values removes the runtime errors in a second fresh profile. It also passes the complete unit-test suite (1,429 passing) and lint.
AI disclosure: Prepared with assistance from OpenAI Codex.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Evaluación
Este issue todavía no se ha evaluado.